nanomsg/nng

nanomsg-next-generation -- light-weight brokerless messaging

View on GitHub ↗Jump to charts ↓Open shareable report →

nanomsg/nng has 4.5k+ stars and 550+ forks on GitHub, is written in C, and was last pushed on Oct 17, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 11 minutes ago
Added to GitGenius on September 14th, 2026
Created on December 11th, 2016
Open Issues & Pull Requests: 47 (-1)
GitHub issues: Enabled
Number of forks: 568
Total Stargazers: 4,686 (+0)
Total Subscribers: 131 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 10.6 days
Mean response time: 252.7 days
90th percentile: 981.8 days
Tracked items: 155

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 17
New in 7 days: 1
Closed in 7 days: 1
Avg open age: 2,428 days
Stale 30+ days: 15
Stale 90+ days: 13

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • feedback (17)
  • enhancement (13)
  • performance (10)
  • help wanted (6)
  • tls (6)
  • windows (6)
  • docs (5)
  • http (5)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

NNG is a lightweight brokerless messaging library that implements the Scalability Protocols with a modern C API.

NNG solves the problem of building distributed systems that need reliable message passing without a central broker. It provides patterns like publish-subscribe, request-reply, and service discovery through a simple API that handles connection management, retries, and other low-level concerns automatically. The library is implemented in C and uses an asynchronous I/O framework with thread pools to scale across multiple cores while remaining embeddable and portable.

Developers should choose NNG if they need production-grade messaging in an embedded or resource-constrained context where a broker-based system would be overkill. It suits applications requiring reliable inter-process or network communication with minimal dependencies. The project improves on its predecessor nanomsg by adding TLS transport support, better scalability through asynchronous I/O, hardening against malicious attackers, and a more intuitive API that separates protocol context from socket state to simplify concurrent programming. A migration guide is available for those moving from NNG 1.x versions.

The project maintains both a development branch and a separate stable branch, with the development branch containing breaking API changes. The codebase is written in C11 and uses CMake for building, supporting compilation as either shared or static libraries. The architecture emphasizes modularity and maintainability, with documentation and design choices intended to make the codebase accessible to developers unfamiliar with it. The project is licensed under the MIT license to minimize adoption friction.