Upcoming 1.22 release

The next Crystal release, 1.22 is scheduled for 2026-10-12.

As usual, it is precluded by a two-week feature freeze period, starting today (2026-09-28). We’re using this time to consolidate the changes and fix bugs.

Some of the highlights:

  • Crystal processes exit immediately when writing to STDOUT or STDERR fails with EPIPE. This closely resembles the default behaviour of the SIGPIPE signal.
    You can opt out of this behaviour by setting STDOUT.exit_on_broken_pipe = false. (#17335)
  • Reduced forward compatibility: Building Crystal 1.22 requires a stage-0 compiler at 1.14 or higher (RFC 30).
  • Major refactor of DWARF loader, with significant performance improvements.
  • All targets support a native event loop now, the libevent fallback is becoming obsolete.
  • Constants can have type declarations (#16951)
  • Crystal::ALL_FLAGS and USER_FLAGS (#17392)
  • Support for LLVM 23.1 and 24.0 (#17432)
  • OpenSSL Kernel TLS is enabled by default (#17059)
  • Lots of HTTP bug fixes and other bug fixes
  • Upgrades of package dependencies, docker base images etc.

You can find all changes in the (provisional) changelog (PR: Add changelog for 1.22.0 by straight-shoota · Pull Request #17500 · crystal-lang/crystal · GitHub). There will be further additions to these resources as we merge additional changes.

:information_source: Nightly builds reflect the upcoming stable release! Please test your code base against nightly builds and report any regressions :person_bowing:

See the instructions for installing nightly builds.

Also: this will be the first ever release featuring unofficial ARM64 MSVC builds (aarch64-windows-msvc), and the crystal-lang/install-crystal GitHub action already supports nightlies