nanomsg/nng

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

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 52 minutes ago
Added to GitGenius on September 14th, 2026
Created on December 11th, 2016
Open Issues & Pull Requests: 48 (+0)
GitHub issues: Enabled
Number of forks: 561
Total Stargazers: 4,665 (+0)
Total Subscribers: 130 (+0)

Repository Insights (GitGenius)

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

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Practically every issue opened in the past year has drawn a reply. Work labelled "feedback" is answered fastest, typically in about 3 days, while "enhancement" waits about 3 weeks. 98% of issues opened in the past year have since been closed. Three people close 94% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 19
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 2,234 days
Stale 30+ days: 16
Stale 90+ days: 16

Recent activity

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

Top labels

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

Most active issues this week

No issue events were indexed in the last 7 days.

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.