# Crystal 1.20.1 - Product: Crystal (https://whatsnew.fyi/product/crystal) - Vendor: Crystal Language - Date: 2026-04-29 - Version: 1.20.1 - Original notes: https://github.com/crystal-lang/crystal/releases/tag/1.20.1 - Permalink: https://whatsnew.fyi/product/crystal/releases/1.20.1 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — Fix issues in OpenSSL Kernel TLS - **changed** — OpenSSL Kernel TLS support should be opt-in - **added** — Add HTTP::Headers#to_json and #to_yaml - **fixed** — Range#sample eventually loses randomness - **fixed** — Don't parse debug sections from bare threads - **fixed** — Fix lexing macro delimiter state inside literals - **fixed** — Revert "Refactor Formatter code for simplification" ###### Bugfixes ###### stdlib - _(crypto)_ Fix issues in OpenSSL Kernel TLS ([#16888], thanks @ysbaddaden) - _(crypto)_ OpenSSL Kernel TLS support should be opt-in ([#16897], thanks @ysbaddaden) - _(networking)_ **[regression]** Add `HTTP::Headers#to_json` and `#to_yaml` ([#16890], thanks @straight-shoota) - _(runtime)_ **[regression]** `Range#sample` eventually loses randomness ([#16853], thanks @ysbaddaden) - _(runtime)_ don't parse debug sections from bare threads ([#16877], thanks @ysbaddaden) [#16853]: https://github.com/crystal-lang/crystal/pull/16853 [#16877]: https://github.com/crystal-lang/crystal/pull/16877 [#16888]: https://github.com/crystal-lang/crystal/pull/16888 [#16890]: https://github.com/crystal-lang/crystal/pull/16890 [#16897]: https://github.com/crystal-lang/crystal/pull/16897 ###### compiler - _(parser)_ **[regression]** Fix lexing macro delimiter state inside literals ([#16892], thanks @straight-shoota) [#16892]: https://github.com/crystal-lang/crystal/pull/16892 ###### tools - _(formatter)_ **[regression]** Revert "Refactor `Formatter` code for simplification" ([#16885], thanks @straight-shoota) [#16885]: https://github.com/crystal-lang/crystal/pull/16885 ###### Refactor ###### stdlib - _(runtime)_ Refactor `Exception::CallStack` for better boundaries ([#16896], thanks @straight-shoota) [#16896]: https://github.com/crystal-lang/crystal/pull/16896 ###### Infrastructure - Changelog for 1.20.1 ([#16898], thanks @straight-shoota) [#16898]: https://github.com/crystal-lang/crystal/pull/16898