Home Download Documentation Development Community Support
About Nanomsg

About Nanomsg

The latest release of nanomsg is 1.1.5.

nanomsg is a socket library that provides several common communication patterns. It aims to make the networking layer fast, scalable, and easy to use. Implemented in C, it works on a wide range of operating systems with no further dependencies.

This project has largely been superceded by the nng project. Users are encouraged to use nng if they are able. The nng project is wire compatible with this library, and supports a significant superset of capabilities.

The communication patterns, also called "scalability protocols", are basic blocks for building distributed systems. By combining them you can create a vast array of distributed applications. The following scalability protocols are currently available:

  • PAIR - simple one-to-one communication

  • BUS - simple many-to-many communication

  • REQREP - allows to build clusters of stateless services to process user requests

  • PUBSUB - distributes messages to large sets of interested subscribers

  • PIPELINE - aggregates messages from multiple sources and load balances them among many destinations

  • SURVEY - allows to query state of multiple applications in a single go

Scalability protocols are layered on top of the transport layer in the network stack. At the moment, the nanomsg library supports the following transports mechanisms:

  • INPROC - transport within a process (between threads, modules etc.)

  • IPC - transport between processes on a single machine

  • TCP - network transport via TCP

  • WS - websockets over TCP

The library exposes a BSD-socket-like C API to the applications.

It is licensed under the MIT/X11 license.

"nanomsg" is a trademark of Garrett D'Amore.