Kemal 0.21.0 released!
Kemal is a Fast, Effective, Simple web framework written in Crystal.
Hello everyone,
Kemal 0.21.0 is here This release brings long wanted features with more performance
WebSocket Context
A long wanted feature, allows one to use HTTP::Server::Context
in ws
declarations This would allow accessing named url parameters and query parameters in WebSocket routes.
For example consider having a WebSocket url like
ws://myawesome.site/kemal?username=sdogruyol
Now you can access these variables from your url within your ws
route
ws "/:room_name" do |socket, env|
env.params.url["room_name"] # => kemal
env.params.query["username"] # => sdogruyol
end
Customizable Static File Headers
Another long wanted feature, which adds support for customizing the headers of built-in Kemal::StaticFileHandler
Useful for single page applications which rely on CORS
.
Here’s a quick snippet for allowing CORS
on .js
files.
static_headers do |response, filepath, filestat|
if filepath =~ /\.js$/
response.headers.add("Access-Control-Allow-Origin", "*")
end
end
end
More Performance
Kemal is built for being fast, we take performance seriously. In recent benchmarks we discovered that Kemal is being blazing fast
However, that’s not a reason to stop us from getting faster This release brings %10-%15 performance increase in overall execution times.
Thanks for using and supporting Kemal. You can check the full CHANGELOG here.
P.S: You can support Kemal development via Patreon
Happy Crystalling