A high-performance HTTP web framework for Go with a Martini-like API, built for REST APIs, web apps and microservices.
CrowCpp/Crow
A fast, Flask-style C++ microframework for building HTTP and WebSocket web services, header-only and easy to use.
- Stars
- 5,009
- Forks
- 565
- Open issues
- 91
- Last commit
- yesterday
What is it?
Crow is a C++ framework for building HTTP and WebSocket web services. Its routing style is modeled after Python's Flask, so defining endpoints with a URL pattern and a handler function feels familiar to developers coming from Python or JavaScript web frameworks.
Handlers are type-checked against URL parameters at compile time, so a mismatch between a route like /hello/<int> and the handler's signature is reported as a compile error. The library also includes JSON request and response support, a Mustache-based templating module, multipart request and response handling, and middleware for extensions.
Crow is distributed as a header-only library, with a single-header build also available, and targets C++11/14. Async support and HTTP/2 are listed as work in progress.
Key features
- 01Flask-style routing with URL parameters.
- 02Compile-time type checking of handler arguments against URL parameters.
- 03Built-in JSON request and response support.
- 04Mustache-based templating via crow::mustache.
- 05Header-only library with a single-header build option.
- 06Middleware support and WebSocket handling.
Use cases
- Building lightweight REST APIs in C++ without a heavy framework.
- Adding HTTP or WebSocket endpoints to an existing C++ application.
- Serving simple server-rendered pages with Mustache templates.
Quick start
- 1
Open the setup guide linked in the README
- 2
Include crow.h and build the Hello World example from the README
Things to know
- The license is not clearly identified in the project metadata, so check the LICENSE file before using it.
- Async support and HTTP/2 are still in development.
- The README gives no package-manager install command; setup is described only in the external guide.
Topics
FAQ
- What is Crow?
- A fast, Flask-style C++ microframework for building HTTP and WebSocket web services, header-only and easy to use. Crow is a C++ framework for building HTTP and WebSocket web services. Its routing style is modeled after Python's Flask, so defining endpoints with a URL pattern and a handler function feels familiar to developers coming from Python or JavaScript web frameworks.
- Is Crow free to use? What license does it have?
- Crow is open source under the Other license. Check the license terms before using it in commercial products.
- Is Crow still maintained?
- Actively maintained. The last commit to Crow was on Oct 19, 2026.
- What can I use Crow for?
- Building lightweight REST APIs in C++ without a heavy framework. Adding HTTP or WebSocket endpoints to an existing C++ application. Serving simple server-rendered pages with Mustache templates.
- How do I install Crow?
- Open the setup guide linked in the README Include crow.h and build the Hello World example from the README
- Where can I get Crow?
- The source code and installation instructions are on GitHub: https://github.com/CrowCpp/Crow
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Express-inspired web framework for Go, built on the fasthttp engine, for writing REST APIs and web servers.
A high-level Python web framework that encourages rapid development and clean, pragmatic design.
A progressive Node.js framework for building efficient, scalable server-side applications in TypeScript or JavaScript.
Fast, unopinionated, minimalist web framework for Node.js for building web apps and HTTP APIs.
Java implementation of Apache Dubbo, an RPC and microservice framework for building service communication, discovery and traffic management.