Repolode
CrowCpp

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. 1

    Open the setup guide linked in the README

  2. 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