kemal
Lightning Fast, Super Simple web framework for Crystal. Inspired by Sinatra but with superior performance and built-in WebSocket support.
Kemal is under heavy development and currently supports Crystal latest.
Super Simple ⚡️
require "kemal"
# Matches GET "http://host:port/"
get "/" do
"Hello World!"
end
# Creates a WebSocket handler.
# Matches "ws://host:port/socket"
ws "/socket" do |socket|
socket.send "Hello from Kemal!"
end
Build and run!
crystal run src/kemal_sample.cr
Go to http://localhost:3000
Check documentation or samples for more.
Super Fast 🚀
Numbers speak louder than words.
| Framework | Request Per Second | Avg. Response Time | | --------------------- | :-----------------: | -----------------: | | Kemal (Production) | 100238 | 395.44μs | | Sinatra (Thin) | 2274 | 43.82ms |
These results were achieved with wrk
on a Macbook Pro Late 2013. (2Ghz i7 8GB Ram OS X Yosemite)
Features
- Support all REST verbs
- Websocket support
- Request/Response context, easy parameter handling
- Middlewares
- Built-in JSON support
- Built-in static file serving
- Built-in view templating via ECR (using Kilt)
Documentation
You can read the documentation at the official site kemalcr.com
Thanks
Thanks to Manas for their awesome work on Frank.