Skip to content

Latest commit

 

History

History
94 lines (64 loc) · 2.58 KB

README.md

File metadata and controls

94 lines (64 loc) · 2.58 KB

Kemal

Kemal

Kemal is the Fast, Effective, Simple Web Framework for Crystal. It's perfect for building Web Applications and APIs with minimal code.

CI

Why Kemal?

  • 🚀 Lightning Fast: Built on Crystal, known for C-like performance
  • 💡 Super Simple: Minimal code needed to get started
  • 🛠 Feature Rich: Everything you need for modern web development
  • 🔧 Flexible: Easy to extend with middleware support

Quick Start

  1. First, make sure you have Crystal installed.

  2. Add Kemal to your project's shard.yml:

dependencies:
  kemal:
    github: kemalcr/kemal
  1. Create your first Kemal app:
require "kemal"

# Basic route - responds to GET "http://localhost:3000/"
get "/" do
  "Hello World!"
end

# JSON API example
get "/api/status" do |env|
  env.response.content_type = "application/json"
  {"status": "ok"}.to_json
end

# WebSocket support
ws "/chat" do |socket|
  socket.send "Hello from Kemal WebSocket!"
end

Kemal.run
  1. Run your application:
crystal run src/your_app.cr
  1. Visit http://localhost:3000 - That's it! 🎉

Key Features

  • Full REST Support: Handle all HTTP verbs (GET, POST, PUT, DELETE, etc.)
  • 🔌 WebSocket Support: Real-time bidirectional communication
  • 📦 Built-in JSON Support: Native JSON handling
  • 🗄️ Static File Serving: Serve your static assets easily
  • 📝 Template Support: Built-in ECR template engine
  • 🔒 Middleware System: Add functionality with middleware
  • 🎯 Request/Response Context: Easy parameter and request handling

Learning Resources

Contributing

We love contributions! If you'd like to contribute:

  1. Fork it (https://github.com/kemalcr/kemal/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Acknowledgments

Special thanks to Manas for their work on Frank.

License

Kemal is released under the MIT License.