Modern C
NNG
For new C applications. Its modern API, asynchronous foundation, and active development make it the default choice for C.
Start with NNGGetting started
The protocols are shared; the installation, lifecycle, and idioms are not. Start with the implementation you will use, then build a small PAIR application you can run locally.
These guides are maintained here so the first example tracks each implementation’s current API.
Modern C
For new C applications. Its modern API, asynchronous foundation, and active development make it the default choice for C.
Start with NNGPure Go
A native Go implementation of the protocols. Use mangos v3 when you want Go’s idioms without a C dependency.
Start with mangosLegacy C API
The original C implementation and API. Choose it for existing applications and bindings that depend on libnanomsg.
Start with libnanomsgIndependent Rust binding
A safe, idiomatic Rust wrapper for NNG. It is maintained separately from the NNG core project.
Start with nng-rsIndependent Python binding
Python bindings for NNG with synchronous, asyncio, and Trio-friendly APIs. It is maintained separately from NNG core.
Start with pynngAll three implementations use the Scalability Protocols. Once your two peers can exchange a message, choose the pattern that matches the shape of your system.