# crowcpp/crow

**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/crowcpp-crow).**

4,721 stars · 510 forks · C++ · other

## Links

- GitHub: https://github.com/CrowCpp/Crow
- Homepage: https://crowcpp.org
- awesome-repositories: https://awesome-repositories.com/repository/crowcpp-crow.md

## Topics

`cpp` `crow` `framework` `header-only` `http` `http-server` `webserver` `websocket`

## Description

Crow is a C++ web framework for building HTTP servers, providing routing, a middleware pipeline, JSON serialization, and WebSocket support. It enables developers to define typed route handlers that extract URL parameters at compile time, return structured JSON responses, and manage real-time bidirectional communication.

The framework distinguishes itself with compile-time route pattern parsing and typed argument binding, which eliminate runtime parsing overhead for URL parameters. Its event loop runs on Boost.Asio, and handler execution can be offloaded to a configurable thread pool to keep I/O responsive. A built-in Mustache-inspired template engine supports server-side rendering of dynamic HTML pages.

Common web tasks such as parsing JSON request bodies, handling multipart form data for file uploads, authenticating requests through the middleware pipeline, and restricting HTTP methods are all supported. The middleware mechanism allows custom processing steps—like logging or access control—to be inserted into the request lifecycle.

## Tags

### Web Development

- [C++ Web Frameworks](https://awesome-repositories.com/f/web-development/c-web-frameworks.md) — A high-performance C++ web framework for building HTTP servers with routing and middleware.
- [Middleware Pipelines](https://awesome-repositories.com/f/web-development/middleware-pipelines.md) — Inserts custom processing steps like authentication and logging into the request-response lifecycle.
- [Cross-Cutting Concerns](https://awesome-repositories.com/f/web-development/request-middleware-pipelines/service-middleware-pipelines/cross-cutting-concerns.md) — Uses the middleware pipeline to enforce cross-cutting policies such as authentication and logging across routes.
- [Server-Side REST API Frameworks](https://awesome-repositories.com/f/web-development/restful-api-development/server-side-rest-api-frameworks.md) — Provides a server-side framework for building REST APIs that accept JSON and return structured responses.
- [Route Handlers](https://awesome-repositories.com/f/web-development/route-handlers.md) — Maps URL paths to handler functions for custom request processing logic. ([source](https://crowcpp.org/))
- [URL Parameter Extraction](https://awesome-repositories.com/f/web-development/url-parameter-extraction.md) — Extracts dynamic path segments from URLs and delivers them as typed arguments to route handlers. ([source](https://crowcpp.org))
- [Multipart Form Parsing](https://awesome-repositories.com/f/web-development/multipart-upload-utilities/multipart-form-parsing.md) — Parses multipart/form-data requests to extract uploaded files and form fields from HTTP bodies.
- [Real-Time Communication](https://awesome-repositories.com/f/web-development/real-time-communication.md) — Manages persistent bidirectional WebSocket connections for low-latency real-time data exchange.

### Development Tools & Productivity

- [Compile-Time Parameter Bindings](https://awesome-repositories.com/f/development-tools-productivity/compile-time-parameter-bindings.md) — Binds URL path segments to typed C++ function arguments at compile time for type-safe parameter extraction.

### Networking & Communication

- [Middleware-Based Request Pipelines](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/middleware-based-request-pipelines.md) — Implements a configurable middleware pipeline for processing cross-cutting concerns on incoming requests.
- [C++ HTTP Server Libraries](https://awesome-repositories.com/f/networking-communication/http-clients/http-servers/c-http-server-libraries.md) — A C++ library that handles HTTP requests and responses with route matching and parameter extraction.
- [Type-Safe Parameter Mapping](https://awesome-repositories.com/f/networking-communication/url-parameter-parsers/automatic-parameter-mapping/type-safe-parameter-mapping.md) — Provides type-safe extraction of URL parameters with compile-time type checking for route handlers. ([source](https://cdn.jsdelivr.net/gh/crowcpp/crow@master/README.md))
- [WebSocket Servers](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/websocket-implementations/websocket-servers.md) — Manages persistent bidirectional WebSocket connections for real-time communication in a C++ server.
- [JSON Serialization](https://awesome-repositories.com/f/networking-communication/json-serialization.md) — Converts JSON request bodies into native objects and serializes responses back to JSON automatically. ([source](https://cdn.jsdelivr.net/gh/crowcpp/crow@master/README.md))
- [Real-Time Web Communication](https://awesome-repositories.com/f/networking-communication/real-time-web-communication.md) — Manages persistent bidirectional WebSocket connections for real-time data exchange. ([source](https://cdn.jsdelivr.net/gh/crowcpp/crow@master/README.md))

### Software Engineering & Architecture

- [Request Middleware](https://awesome-repositories.com/f/software-engineering-architecture/request-middleware.md) — Provides a middleware system to insert custom processing logic like authentication and logging into request handling. ([source](https://cdn.jsdelivr.net/gh/crowcpp/crow@master/README.md))
- [Route Pattern Parsers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/compile-time-architectural-patterns/compile-time-metaprogramming/route-pattern-parsers.md) — Parses URL route patterns at compile time for typed parameter extraction and zero-runtime overhead.

### System Administration & Monitoring

- [Asynchronous Event Loops](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o/asynchronous-event-loops.md) — Provides an asynchronous event loop for non-blocking I/O operations and timer management.

### User Interface & Experience

- [Route-to-Callback Mapping](https://awesome-repositories.com/f/user-interface-experience/tab-selection-mechanisms/url-synced-tabs/view-to-url-mapping/route-to-callback-mapping.md) — Associates URL patterns with functions that produce HTTP responses including text and JSON. ([source](https://crowcpp.org))
- [Server-Side Template Rendering](https://awesome-repositories.com/f/user-interface-experience/dynamic-html-generators/server-side-template-rendering.md) — Generates dynamic HTML pages by processing Mustache-inspired templates with server-side data.
- [HTML Template Renderers](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/html-template-renderers.md) — Generates dynamic HTML pages by processing templates with route data. ([source](https://cdn.jsdelivr.net/gh/crowcpp/crow@master/README.md))
- [Logic-less Template Engines](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/logic-less-template-engines.md) — Provides a logic-less Mustache-inspired template engine for server-side HTML rendering.

### Artificial Intelligence & ML

- [Thread-Pooled](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-deployment-and-serving/local-and-on-device-inference/local-model-inference-servers/remote-inference-offloaders/task-offloaders/thread-pooled.md) — Offloads route handler execution to a configurable thread pool to keep I/O responsive.

### Part of an Awesome List

- [JSON Serialization Libraries](https://awesome-repositories.com/f/awesome-lists/data/json-and-serialization/json-serialization-libraries.md) — Automatically parses and serializes JSON data in route handlers and responses using Boost.JSON.
- [Web Development](https://awesome-repositories.com/f/awesome-lists/devtools/web-development.md) — Micro-framework for Web services.
- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Microframework for web services with Flask-like routing.

### Data & Databases

- [JSON Response Serializers](https://awesome-repositories.com/f/data-databases/data-structures/structured-return-objects/json-response-serializers.md) — Serializes structured data into JSON format for HTTP response bodies. ([source](https://crowcpp.org/))

### Programming Languages & Runtimes

- [JSON Serialization](https://awesome-repositories.com/f/programming-languages-runtimes/json-serialization.md) — Ships built-in JSON serialization and deserialization for structured data in HTTP responses and requests.

### Security & Cryptography

- [Credential Authentication](https://awesome-repositories.com/f/security-cryptography/authentication-clients/credential-authentication.md) — Validates credentials from the Authorization header to authenticate incoming HTTP requests. ([source](https://crowcpp.org/guides/auth/))
