tree: bced79c3b6baa250a9018b53379e1e0fd2425d52 [path history] [tgz]
  1. demo/
  2. doc/
  3. perf/
  4. rfc/
  5. src/
  6. tests/
  7. tools/
  8. .appveyor.yml
  9. .gitignore
  10. .travis.yml
  11. .version
  13. CMakeLists.txt
  14. configure

Welcome to nanomsg

Release MIT License Linux Status Windows Status Gitter

The nanomsg library is a simple high-performance implementation of several “scalability protocols”. These scalability protocols are light-weight messaging protocols which can be used to solve a number of very common messaging patterns, such as request/reply, publish/subscribe, surveyor/respondent, and so forth. These protocols can run over a variety of transports such as TCP, UNIX sockets, and even WebSocket.

For more information check the website.


  1. Windows.

    • Windows Vista or newer (Windows XP and 2003 are NOT supported)
    • Microsoft Visual Studio 2010 (including C++) or newer, or mingw-w64 (Specifically mingw and older Microsoft compilers are *NOT supported)
    • CMake 2.8.7 or newer, available in $PATH as cmake
  2. POSIX (Linux, MacOS X, UNIX)

    • ANSI C compiler supporting C89
    • POSIX pthreads (should be present on all modern POSIX systems)
    • BSD sockets support for both TCP and UNIX domain sockets
    • CMake ( 2.8.7 or newer, available in $PATH as cmake
  3. Documentation (optional)

Build it with CMake

(This assumes you want to use the default generator. To use a different generator specify -G <generator> to the cmake command line. The list of generators supported can be obtained using cmake --help.)

  1. Go to the root directory of the local source repository.
  2. To perform an out-of-source build, run:
  3. mkdir build
  4. cd build
  5. cmake .. (You can add -DCMAKE_INSTALL_PREFIX=/usr/local or some other directory. You can specify a release build with -DCMAKE_BUILD_TYPE=Release.
  6. cmake --build .
  7. ctest -C Debug .
  8. cmake --build . --target install NB: This may have to be done as a privileged user.
  9. (Linux only). ldconfig (As a privileged or root user.)

Static Library (Windows Only)

We normally build a dynamic library (.DLL) by default.

If you want a static library (.LIB) , configure by passing -DNN_STATIC_LIB=ON to the cmake command.

You will also need to define NN_STATIC_LIB in your compilation environment when building programs that use this library.

This is required because of the way Windows DLL exports happen. This is not necessary when compiling on POSIX platforms.



Source code:


Bug tracker:

Mailing list:

Gitter Chat:

IRC chatroom: #nanomsg at