A lightweight, brokerless messaging library implementing scalability protocols for publish/subscribe, request/reply, and service discovery.
NNG (nanomsg-next-generation) is a lightweight, brokerless messaging library that implements common scalability protocols like publish/subscribe, request/reply, and service discovery. It provides a simple API that handles connection management, retries, and other networking complexities, enabling developers to build robust distributed applications without worrying about low-level plumbing.
System and application developers building distributed systems, microservices, IoT platforms, or any application requiring reliable, low-latency inter-process communication across networks.
Developers choose NNG for its production-ready reliability, enhanced security with TLS support, cross-platform compatibility, and wire-level compatibility with existing nanomsg ecosystems—all under a permissive MIT license with no broker dependency.
nanomsg-next-generation -- light-weight brokerless messaging
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Eliminates central brokers, reducing latency and complexity, as highlighted in the brokerless architecture feature for lightweight messaging.
Supports TLS 1.2/1.3 for secure transports, providing industry-standard authentication and encryption in hostile network environments, as noted in the security enhancements.
Runs on Linux, macOS, Windows, FreeBSD, Android, iOS, and other POSIX systems, ensuring wide deployment flexibility across modern platforms.
Designed with comprehensive error handling and crash avoidance, making it suitable for robust production use from the beginning.
Uses thread pools and asynchronous operations to efficiently scale across multiple cores, improving performance in concurrent applications, as described in the scalability protocols.
Admits lacking enhanced observability and tunable prioritization from nanomsg, which are useful for monitoring and control, and will be added later.
NNG 2.0 introduces breaking changes from NNG 1.x, requiring migration efforts, though a guide is provided, which can disrupt existing codebases.
API documentation is being converted from Asciidoc to mdbook, potentially leading to incomplete or confusing resources during the transition period.
Building with TLS support requires additional libraries like Mbed TLS or OpenSSL, adding setup steps and potential compatibility issues, as noted in the requirements.