Skip to content


Here's how you can install Crow on your Mac.

Getting Crow

From a release


Crow provides an archive containing the framework and CMake files, You will only need the include folder inside that archive.

Single header file

You can also download the crow_all.h file which replaces the include folder.

From Source

To get Crow from source, you only need to download the repository (as a .zip or through git clone

include folder

Once you've downloaded Crow's source code, you only need to take the include folder.

Single header file

You can generate your own single header file by navigating to the scripts folder with your terminal and running the following command:

python3 ../include crow_all.h
This will generate a crow_all.h file which you can use in the following steps


crow_all.h is recommended only for small, possibly single source file projects. For larger projects, it is advised to use the multi-header version.

Setting up your Crow project

Using XCode

  1. Download and install Homebrew.
  2. Run brew install asio in your terminal.
  3. Create a new XCode project (macOS -> Command Line Tool).
  4. Change the following project settings:

    1. Add header search paths for crow's include folder and asio's folder (/usr/local/include, /usr/local/Cellar/asio/include, and where you placed Crow's include folder)
    2. Add linker flags (-lpthread)
    1. Place crow_all.h inside your project folder and add it to the project in XCode (you need to use File -> Add files to "project_name")
    2. Add header search paths for asio's folder (/usr/local/include, and /usr/local/Cellar/asio/include)
    3. Add linker flags (-lpthread)
  5. Write your Crow application in main.cpp (something like the Hello World example will work).

  6. Press to compile and run your Crow application.

Building Crow's tests/examples


This tutorial can be used for Crow projects built with CMake as well

  1. Download and install Homebrew.
  2. Run brew install cmake asio in your terminal.
  3. Get Crow's source code (the entire source code).
  4. Run the following Commands:
    1. mkdir build
    2. cd build
    3. cmake ..
    4. make -j12


You can add options like -DCROW_FEATURES="ssl;compression" or -DCROW_AMALGAMATE to cmake .. to build optional tests/examples for HTTP Compression or HTTPS.

Compiling using a compiler directly

All you need to do is run the following command:

g++ main.cpp -lpthread


You'll need to install GCC via brew install gcc. the Clang compiler should be part of XCode or XCode command line tools.

You can use arguments like -DCROW_ENABLE_DEBUG, -DCROW_ENABLE_COMPRESSION -lz for HTTP Compression, or -DCROW_ENABLE_SSL -lssl for HTTPS support, or even replace g++ with clang++.