# Upcoming 1.20 release

**URL:** <https://forum.crystal-lang.org/t/upcoming-1-20-release/8842>\
**Category:** Official\
**Created:** [April 3, 2026, 2:44pm UTC](https://forum.crystal-lang.org/t/upcoming-1-20-release/8842 "2026-04-03T14:44:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ysbaddaden](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/ysbaddaden/32/2252_2.png) [@ysbaddaden](https://forum.crystal-lang.org/u/ysbaddaden)\
**Post date:** [April 3, 2026, 2:44pm UTC](https://forum.crystal-lang.org/t/upcoming-1-20-release/8842/1 "2026-04-03T14:44:04Z")

</div>

The next Crystal release, **1.20** is scheduled for **2026-04-16**.

As usual, this is precluded by a two-week feature **freeze period** , starting **2026-04-02** (yesterday). We’ll be using this time until the release to consolidate the changes and fix bugs.

A preview of the release notes is available: [Crystal 1.20.0 is released! - The Crystal Programming Language](https://deploy-preview-1052--crystal-website.netlify.app/2026/01/16/1.20.0-released/) (PR: [#1052](https://github.com/crystal-lang/crystal-website/pull/1052))

Some of the highlights:

- `Process` enhancements such as `Process.capture` as per [RFC 0025](https://github.com/crystal-lang/rfcs/pull/25)
- Short option bundling in `OptionParser` so we can type `-ncb` instead of `-n -c -b` for example
- Execution contexts improvements:
  - M:N scheduling
  - Don’t block a thread on blocking syscalls (e.g. `getaddrinfo`)
  - Dynamic scaling

- Experimental Linux io\_uring event loop (_not merged_)
- Kernel TLS on Linux and FreeBSD
- Support for LLVM 22.1 and 23

The enhancements to `Process` are making us closer to support Windows as a first tier platform! ❤

You can find all changes in the [(provisional) changelog](https://github.com/crystal-lang/crystal/blob/changelog/1.20.0/CHANGELOG.md) (PR: [#16751](https://github.com/crystal-lang/crystal/pull/16751)). There will be further additions to these resources as we merge additional changes.

> ℹ Nightly builds reflect the upcoming stable release! Please **test your code base against nightly builds** and report any regressions 🙇
> 
> See the instructions for installing [nightly builds](https://crystal-lang.org/install/nightlies/).

---

<div class="post-metadata">

**Author:** ![ysbaddaden](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/ysbaddaden/32/2252_2.png) [@ysbaddaden](https://forum.crystal-lang.org/u/ysbaddaden)\
**Post date:** [April 3, 2026, 4:11pm UTC](https://forum.crystal-lang.org/t/upcoming-1-20-release/8842/2 "2026-04-03T16:11:25Z")

</div>

Sadly, no release of execution contexts, yet. Not that they’re unstable, quite the opposite (💪) but there are a few MT issues that need further investigation that didn’t make it into 1.20, notably:

- [Thread-safety for union types · Issue #15085 · crystal-lang/crystal · GitHub](https://github.com/crystal-lang/crystal/issues/15085) (impacts the type system)
- [Ensuring `class_getter` runs exactly once under concurrent access · Issue #14905 · crystal-lang/crystal · GitHub](https://github.com/crystal-lang/crystal/issues/14905) (impacts lazy initializers)

And an issue with Windows / IOCP:

- [Windows/IOCP: handles are tied to a specific IOCP instance · Issue #16675 · crystal-lang/crystal · GitHub](https://github.com/crystal-lang/crystal/issues/16675)

See the [MT board](https://github.com/orgs/crystal-lang/projects/12/views/1).

---

<div class="post-metadata">

**Author:** ![straight-shoota](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/straight-shoota/32/36_2.png) [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Post date:** [April 7, 2026, 9:46am UTC](https://forum.crystal-lang.org/t/upcoming-1-20-release/8842/3 "2026-04-07T09:46:51Z")

</div>

2 posts were split to a new topic: [Constant time cryptography](https://forum.crystal-lang.org/t/constant-time-cryptography/8847)
