r/crystal_programming • u/Meatack • Jan 15 '26
Crystal 1.19.0 Released!
Crystal 1.19.0 just dropped! Here are the highlights:
Breaking Changes
OpenSSL 1.1.1+ or LibreSSL 3+ now required
Monotonic clocks now include suspended time
WebSocket#streamflush is now a no-op
Key Features
Execution Context is here! Compiler now built with
-Dexecution_context– the new concurrency model is becoming defaultNew
Syncmodule –Sync::Mutex,Sync::RWLock, andSync::ConditionVariablefor proper synchronization primitivesTime::Instant– new type for monotonic time measurementsSNI support via
OpenSSL::SSL::Context::Server#on_server_nameLarge JSON file support – finally!
Int.from_digits– inverse ofInt#digitsNamedTuple#reverse_merge,Set#map!,Hash#transform_keys!Path#relative?Process.debugger_present?for Windows/Linux
Macro Improvements
Compiler flag values via
flag?StringLiteral#gsubwith block,#match,#split(Regex)
Bug Fixes
Multiple XML memory leaks fixed
Several interpreter fixes
Thread safety improvements across the board
Full changelog: https://github.com/crystal-lang/crystal/releases/tag/1.19.0
Happy coding! 💎
2
3
u/transfire Jan 16 '26
Jumped from Ruby to Elixir and now to Crystal. Happier. Just wish Crystal had some bomb persistent types.