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 theSIGPIPEsignal.
You can opt out of this behaviour by settingSTDOUT.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
libeventfallback is becoming obsolete. - Constants can have type declarations (#16951)
Crystal::ALL_FLAGSandUSER_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.
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.