NNG, like its predecessors nanomsg (and to some extent ZeroMQ), is a lightweight, broker-less library, offering a simple API to solve common recurring messaging problems, such as publish/subscribe, RPC-style request/reply, or service discovery. The API frees the programmer from worrying about details like connection management, retries, and other common considerations, so that they can focus on the application instead of the plumbing.
NNG is implemented in C, requiring only C99 and CMake to build. It can be built as a shared or a static library, and is readily embeddable. It is also designed to be easy to port to new platforms if your platform is not already supported.
NNG + EMQ: enabling next generation of messaging bus for edge computing.
EMQ has been the Gold-tier sponsor of the nanomsg/NNG project for a long time. We jointly released NanoMQ - the next-gen MQTT broker and edge messaging hub. The reason why we started working with each other is that EMQ sees the shortcomings of traditional edge software like mosquitto. They are outdated for modern edge hardware, which requires more powerful performance and event-based architecture.
Therefore, we extract the engine from NNG and rebuild it as an Actor model for messaging hub. Based on NNG's asynchronous I/O threading model. With NNG/Nanomsg's extraordinary networking API design, NanoMQ itself can only focus on the MQTT layer and extensive plugins.
Additionally, NNG's Scalability protocol supports various messaging patterns. It is flexible and valuable for eKuiper's plugin development. And it broadens the message pattern for MQTT broker(EMQ), making device connection easier.