You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Luna 845ccb10ab don't overwrite content-length if its already there 2 weeks ago
.github Create FUNDING.yml 1 year ago
samples Update 4 years ago
spec Refactor run_spec to use process exit instead of empty stderr (#584) 1 month ago
src don't overwrite content-length if its already there 2 weeks ago
.ameba.yml Cleanup ameba warnings (#551) 1 year ago
.gitignore Add /bin to .gitignore 1 year ago
.travis.yml Use Ameba on Travis CI (#520) 1 year ago Bump version to 0.26.1 9 months ago
LICENSE Add LICENSE 4 years ago Improve Installation in README (#445) 2 years ago
shard.yml Upgrade to Crystal 0.35.0 (#570) 3 months ago



Lightning Fast, Super Simple web framework.

Build Status Join the chat at

Super Simple

require "kemal"

# Matches GET "http://host:port/"
get "/" do
  "Hello World!"

# Creates a WebSocket handler.
# Matches "ws://host:port/socket"
ws "/socket" do |socket|
  socket.send "Hello from Kemal!"

Start your application!

crystal src/

Go to http://localhost:3000

Check documentation or samples for more.


Add this to your application’s shard.yml:

    github: kemalcr/kemal

See also Getting Started.


  • Support all REST verbs
  • Websocket support
  • Request/Response context, easy parameter handling
  • Middleware support
  • Built-in JSON support
  • Built-in static file serving
  • Built-in view templating via Kilt


You can read the documentation at the official site


Thanks to Manas for their awesome work on Frank.