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.