# kemalcr/kemal

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/kemalcr-kemal).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

3,881 stars · 196 forks · Crystal · MIT

## Links

- GitHub: https://github.com/kemalcr/kemal
- Homepage: https://kemalcr.com
- awesome-repositories: https://awesome-repositories.com/repository/kemalcr-kemal.md

## Description

Kemal is a high-performance web framework for the Crystal language, designed for building scalable APIs and web applications. It provides a natively compiled web server environment that leverages ahead-of-time compilation to maximize request speed and minimize memory overhead.

The framework is distinguished by a middleware-based routing engine that uses pattern-matching and a chainable pipeline for flexible request filtering. It includes a dedicated server-side template engine for generating dynamic HTML and a WebSocket communication server for bidirectional real-time messaging and state broadcasting.

The project covers a broad range of capabilities including session management, database connectivity with connection pooling, and static asset delivery. It also integrates security features such as SSL/TLS encryption, request throttling, and payload limiting to protect endpoints.

## Tags

### Programming Languages & Runtimes

- [Ahead-Of-Time Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/ahead-of-time-compilation.md) — Leverages ahead-of-time compilation to machine code for maximum request throughput and minimum memory overhead.
- [Native Machine Code Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/native-machine-code-compilation.md) — Compiles directly to native machine code to handle high volumes of concurrent requests with minimal memory. ([source](https://kemalcr.com/))

### Software Engineering & Architecture

- [High-Performance API Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/high-performance-api-frameworks.md) — Offers a high-performance framework optimized for low-latency, high-throughput API communication using Crystal.
- [Middleware Pipeline Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/middleware-pipeline-frameworks.md) — Implements a chainable middleware pipeline to process requests through modular layers before reaching handlers.
- [Composable Middleware Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/request-interception-middleware/composable-middleware-pipelines.md) — Implements a chainable pipeline of reusable functions for processing cross-cutting concerns like logging and authentication. ([source](https://cdn.jsdelivr.net/gh/kemalcr/kemal@main/README.md))
- [Request Context State](https://awesome-repositories.com/f/software-engineering-architecture/request-context-state.md) — Provides request-scoped storage to share temporary state and variables between middleware and route handlers. ([source](https://kemalcr.com/guide))
- [Request Context Storage](https://awesome-repositories.com/f/software-engineering-architecture/request-context-storage.md) — Provides a mechanism to share lightweight metadata within a single request's lifecycle across middleware and handlers.

### Web Development

- [High-Performance Web Frameworks](https://awesome-repositories.com/f/web-development/high-performance-web-frameworks.md) — Provides a high-performance web framework for building scalable APIs and applications using the Crystal language.
- [API Request Filters](https://awesome-repositories.com/f/web-development/api-request-filters.md) — Ships a middleware system to intercept and modify HTTP requests and responses before or after handlers. ([source](https://kemalcr.com/guide))
- [Parameter Extraction](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-request-handling/request-parsing/parameter-extraction.md) — Provides utilities to extract data from URL placeholders, query strings, JSON payloads, and form bodies. ([source](https://kemalcr.com/guide))
- [Full-Stack Web Development](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/full-stack-frameworks/full-stack-web-development.md) — Provides a full-stack environment for building scalable server-side APIs and client-side interfaces in one codebase.
- [Dynamic View Rendering](https://awesome-repositories.com/f/web-development/dynamic-view-rendering.md) — Generates dynamic HTML pages using templates that support shared layouts and named content blocks. ([source](https://kemalcr.com/guide))
- [HTTP Request Routing](https://awesome-repositories.com/f/web-development/http-request-routing.md) — Maps incoming HTTP methods and URL paths to specific blocks of code for request handling. ([source](http://kemalcr.com/guide/))
- [JSON APIs](https://awesome-repositories.com/f/web-development/json-apis.md) — Provides built-in routing and handlers specifically designed to return structured JSON responses for API consumption. ([source](https://kemalcr.com/cookbook/json_api))
- [Middleware-Based Routing](https://awesome-repositories.com/f/web-development/middleware-based-routing.md) — Implements a routing engine based on a chainable middleware pipeline and pattern-matching for flexible request filtering.
- [Middleware Pipelines](https://awesome-repositories.com/f/web-development/middleware-pipelines.md) — Implements a modular middleware pattern for processing network traffic through sequential request and response stages.
- [Real-Time Data Streaming](https://awesome-repositories.com/f/web-development/real-time-data-streaming.md) — Implements bidirectional communication using WebSockets to push live updates and state broadcasts to clients.
- [Verb-Based Routing](https://awesome-repositories.com/f/web-development/routing-systems/http-routing/multi-verb-route-matchers/verb-based-routing.md) — Uses a routing DSL to map all standard HTTP verbs to specific handler logic. ([source](https://cdn.jsdelivr.net/gh/kemalcr/kemal@main/README.md))
- [WebSocket Implementations](https://awesome-repositories.com/f/web-development/websocket-implementations.md) — Implements a WebSocket server that maps specific routes to bidirectional communication handlers. ([source](https://kemalcr.com/guide))
- [Route Grouping](https://awesome-repositories.com/f/web-development/route-grouping.md) — Organizes routes into namespaces with scoped filters and isolated handlers to structure large applications. ([source](http://kemalcr.com/guide/))
- [Route Namespacing](https://awesome-repositories.com/f/web-development/route-namespacing.md) — Organizes handlers into logical groups with isolated filters and shared path prefixes to structure large applications.
- [Filesystem Static File Servings](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-server-capabilities/static-asset-serving/filesystem-static-file-servings.md) — Serves static files directly from the filesystem with automatic MIME type detection. ([source](https://kemalcr.com/guide))

### Development Tools & Productivity

- [Native AOT Compilation](https://awesome-repositories.com/f/development-tools-productivity/native-compilation/native-aot-compilation.md) — Uses ahead-of-time native compilation to maximize request speed and minimize memory overhead.
- [Route Pattern Matching](https://awesome-repositories.com/f/development-tools-productivity/regular-expressions/route-pattern-matching.md) — Uses a specialized routing engine with pattern-matching for efficient HTTP request dispatching.

### Networking & Communication

- [Bidirectional WebSocket Streaming](https://awesome-repositories.com/f/networking-communication/bidirectional-websocket-streaming.md) — Maps specific network routes to persistent WebSocket connection handlers for real-time communication.
- [WebSocket Data Streaming](https://awesome-repositories.com/f/networking-communication/websocket-data-streaming.md) — Enables real-time data streaming to clients via persistent WebSocket connections for live updates and dashboards. ([source](https://cdn.jsdelivr.net/gh/kemalcr/kemal@main/README.md))
- [Broadcast Messaging](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/message-broker-infrastructure/publish-subscribe-messaging/client-to-client-messaging/targeted-websocket-messaging/broadcast-messaging.md) — Enables real-time data synchronization by broadcasting messages to all connected WebSocket clients simultaneously. ([source](https://kemalcr.com/cookbook/websocket_chat))
- [Websocket Connection Managers](https://awesome-repositories.com/f/networking-communication/connection-management/websocket-connection-managers.md) — Manages thousands of concurrent persistent WebSocket connections to support high-traffic real-time communication. ([source](https://kemalcr.com/blog))
- [Pipeline Extensions](https://awesome-repositories.com/f/networking-communication/http-request-customization/pipeline-extensions.md) — Allows plugging custom logic into the request-response chain globally or for specific paths to modify data flow. ([source](http://kemalcr.com/guide/))
- [WebSocket Servers](https://awesome-repositories.com/f/networking-communication/websocket-servers.md) — Includes a built-in WebSocket server for bidirectional real-time messaging and state broadcasting.

### User Interface & Experience

- [Server-Side Template Engines](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/server-side-template-engines.md) — Includes a dedicated server-side template engine that injects dynamic application data into HTML templates.

### Data & Databases

- [Database Connectivity](https://awesome-repositories.com/f/data-databases/database-connectivity.md) — Establishes connections to data stores using connection strings to execute queries and manage records. ([source](https://kemalcr.com/cookbook/postgresql-db))
- [Connection Pooling](https://awesome-repositories.com/f/data-databases/high-concurrency-database-access/connection-pooling.md) — Manages a reusable set of database connections to optimize performance and reduce session overhead.
- [SQL Query Execution](https://awesome-repositories.com/f/data-databases/sql-query-execution.md) — Executes SQL statements to retrieve, insert, or delete data and returns the result sets. ([source](https://kemalcr.com/cookbook/postgresql-db))

### Security & Cryptography

- [Server Settings](https://awesome-repositories.com/f/security-cryptography/tls-server-configurations/server-settings.md) — Provides configuration for operational parameters including host bindings, ports, and request body limits. ([source](https://kemalcr.com/guide))
- [Server-Side Session Management](https://awesome-repositories.com/f/security-cryptography/user-identity-management/server-side-session-management.md) — Manages user state and identity across multiple requests using signed cookies and server-side storage. ([source](https://cdn.jsdelivr.net/gh/kemalcr/kemal@main/README.md))
- [Web Application Security](https://awesome-repositories.com/f/security-cryptography/web-application-security.md) — Secures endpoints through rate limiting, encrypted sessions, SSL configuration, and security header injection.

### Part of an Awesome List

- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Fast and simple web framework inspired by Sinatra.
