← Package directory
Available on winget

Install Crystal

A language for humans and computers

Install with winget
winget install --id CrystalLang.Crystal
Upgrade
winget upgrade --id CrystalLang.Crystal
Uninstall
winget uninstall --id CrystalLang.Crystal

About Crystal

Crystal is a general-purpose, object-oriented programming language. With syntax inspired by Ruby, it’s a compiled language with static type-checking. Types are resolved by an advanced type inference algorithm.

What's new in 1.20.2

Bugfixes stdlib - (concurrency) [regression] Simplify Sync::Mutex#synchronize proc type constraints (#16904, #16937, thanks @ysbaddaden) - (runtime) Range#sample eventually loses randomness (#16909, thanks @ysbaddaden) Infrastructure - Changelog for 1.20.2 (#16945, thanks @straight-shoota)

Read release notes

Version history

Version Updated Notes
1.20.2 Unknown Bugfixes stdlib - (concurrency) [regression] Simplify Sync::Mutex#synchronize proc type constraints (#16904, #16937, thanks @ysbaddaden) - (runtime) Range#sample eventually loses randomness (#16909, thanks @ysbaddaden) I...
1.20.1 Unknown 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#t...
1.20.0 Unknown Release notes
1.19.1 Unknown Bugfixes stdlib - (concurrency) [regression] Fix kqueue timer duration calculation (#16581, thanks @skuznetsov) - (concurrency) [regression] time calculations in IOCP and Monitor thread (#16583, thanks @ysbaddaden) Infra...
1.19.0 Unknown Release notes
1.18.2 Unknown Bugfixes stdlib - (files) [regression] Revert type restriction for IO#read_bytes (#16231, thanks @straight-shoota) - (runtime) Fix Fiber::ExecutionContext.default_workers_count to avoid taking into account unsupported va...
1.18.1 Unknown Bugfixes stdlib - (networking) [regression] Revert adding type restrictions on HTTP::WebSocket#send etc. (#16218, thanks @straight-shoota) compiler - (parser) [regression] Fix allow space after base type in enum def (#16...
1.18.0 Unknown Release notes
1.17.1 Unknown Bugfixes tools - (docs-generator) [regression] Revert "Handle doc locations when file is in parent directory" (#15996, thanks @Blacksmoke16) Infrastructure - Changelog for 1.17.1 (#16009, thanks @straight-shoota)
1.17.0 Unknown Release notes
1.16.3 Unknown Bugfixes stdlib - (runtime) Fix Crystal::EventLoop::LibEvent and FiberExecutionContext integration (#15759, backported from #15743, thanks @ysbaddaden) compiler - (codegen) Add fallback if __crystal_raise_cast_failed is...
1.16.2 Unknown Bugfixes stdlib - (numeric) Fix show unit_separator in #humanize_bytes with empty prefix (#15717, backported from #15683, thanks @straight-shoota) - (runtime) CRYSTAL_LOAD_DEBUG_INFO=1 fails with -Dexecution_context (#15...
1.16.1 Unknown Bugfixes stdlib - (runtime) Correctly transfer FD ownership in polling event loop (#15650, thanks @ysbaddaden) - (runtime) Fix error message when PollDescriptor can't transfer fd (#15663, thanks @ysbaddaden) - (runtime)...
1.16.0 Unknown Release notes
1.15.1 Unknown Bugfixes stdlib - (networking) Disable directory path redirect when directory_listing=false (#15393, thanks @straight-shoota) - (runtime) [regression] abstract EventLoop::Polling#system_add invalid signature (#15380, bac...
1.15.0 Unknown Release notes
1.14.1 Unknown Bugfixes tools - (formatter) Handle trailing comma with multiple parameters on the same line (#15097, thanks @Blacksmoke16) Infrastructure - Changelog for 1.14.1 (#15323, thanks @straight-shoota) - (ci) Update XCode 15.3...
1.14.0 Unknown Release notes
1.9.2 Unknown Bugfixes - stdlib Revert "Add default interrupt handlers" (#13673, thanks @straight-shoota)
1.8.2 Unknown Collection - Fix codegen bug with Iterator:: ChainIterator (#13412, thanks @straight-shoota) Log - Fix Log:: Metadata#dup crash with 2+ entries (#13369, thanks @HertzDevil) Serialization - Fixup for JSON:: Serializable o...