Discuss on Groups View on GitHub

Installation: Tools and C++ Runtime

Get Notified of Updates

The Cap’n Proto tools, including the compiler (which takes .capnp files and generates source code for them), are written in C++. Therefore, you must install the C++ package even if your actual development language is something else.

This package is licensed under the MIT License.


Supported Compilers

Cap’n Proto makes extensive use of C++14 language features. As a result, it requires a relatively new version of a well-supported compiler. The minimum versions are:

If your system’s default compiler is older that the above, you will need to install a newer compiler and set the CXX environment variable before trying to build Cap’n Proto. For example, after installing GCC 7, you could set CXX=g++-7 to use this compiler.

Supported Operating Systems

In theory, Cap’n Proto should work on any POSIX platform supporting one of the above compilers, as well as on Windows. We test every Cap’n Proto release on the following platforms:

Windows users: Cap’n Proto requires Visual Studio 2019 or newer. All features of Cap’n Proto – including serialization, dynamic API, RPC, and schema parser – are now supported.

Mac OS X users: You should use the latest Xcode with the Xcode command-line tools (Xcode menu > Preferences > Downloads). Alternatively, the command-line tools package from Apple or compiler builds from Macports, Fink, or Homebrew are reported to work.

Installation: Unix

From Release Tarball

You may download and install the release version of Cap’n Proto like so:

curl -O https://capnproto.org/capnproto-c++-1.0.2.tar.gz
tar zxf capnproto-c++-1.0.2.tar.gz
cd capnproto-c++-1.0.2
make -j6 check
sudo make install

This will install capnp, the Cap’n Proto command-line tool. It will also install libcapnp, libcapnpc, and libkj in /usr/local/lib and headers in /usr/local/include/capnp and /usr/local/include/kj.

From Package Managers

Some package managers include Cap’n Proto packages.

Note: These packages are not maintained by us and are sometimes not up to date with the latest Cap’n Proto release.

From Git

If you download directly from Git, you will need to have the GNU autotools – autoconf, automake, and libtool – installed.

git clone -b master https://github.com/capnproto/capnproto.git
cd capnproto/c++
autoreconf -i
make -j6 check
sudo make install

Installation: Windows

From Release Zip

  1. Download Cap’n Proto Win32 build:

  2. Find capnp.exe, capnpc-c++.exe, and capnpc-capnp.exe under capnproto-tools-win32-1.0.2 in the zip and copy them somewhere.

  3. If your .capnp files will import any of the .capnp files provided by the core project, or if you use the stream keyword (which implicitly imports capnp/stream.capnp), then you need to put those files somewhere where the capnp compiler can find them. To do this, copy the directory capnproto-c++-1.0.2/src to the location of your choice, then make sure to pass the flag -I <that location> to capnp when you run it.

If you don’t care about C++ support, you can stop here. The compiler exe can be used with plugins provided by projects implementing Cap’n Proto in other languages.

If you want to use Cap’n Proto in C++ with Visual Studio, do the following:

  1. Make sure that you are using Visual Studio 2019 or newer, with all updates installed. Cap’n Proto uses C++14 language features that did not work in previous versions of Visual Studio, and the updates include many bug fixes that Cap’n Proto requires.

  2. Install CMake version 3.1 or later.

  3. Use CMake to generate Visual Studio project files under capnproto-c++-1.0.2 in the zip file. You can use the CMake UI for this or run this shell command:

    cmake -G "Visual Studio 16 2019"
  4. Open the “Cap’n Proto” solution in Visual Studio.

  5. Adjust the project build options (e.g., choice of C++ runtime library, enable/disable exceptions and RTTI) to match the options of the project in which you plan to use Cap’n Proto.

  6. Build the solution (ALL_BUILD).

  7. Build the INSTALL project to copy the compiled libraries, tools, and header files into CMAKE_INSTALL_PREFIX.

    Alternatively, find the compiled .lib files in the build directory under src/{capnp,kj}/{Debug,Release} and place them somewhere where your project can link against them. Also add the src directory to your search path for #includes, or copy all the headers to your project’s include directory.

Cap’n Proto can also be built with MinGW or Cygwin, using the Unix/autotools build instructions.

From Git

The C++ sources are located under c++ directory in the git repository. The build instructions are otherwise the same as for the release zip.