From 2fd6861fb72dcd0cd41bd014fda6b44a172c496b Mon Sep 17 00:00:00 2001 From: oceanlvr <36698124+oceanlvr@users.noreply.github.com> Date: Sat, 31 Jul 2021 22:41:15 +0800 Subject: refactor(docs): refactor man & index page (#1472) --- _includes/nn-content.html | 162 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 _includes/nn-content.html (limited to '_includes/nn-content.html') diff --git a/_includes/nn-content.html b/_includes/nn-content.html new file mode 100644 index 00000000..728466ad --- /dev/null +++ b/_includes/nn-content.html @@ -0,0 +1,162 @@ + +
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 designed for production use from the beginning. Every error case is considered, + and it is designed to avoid crashing except in cases of gross developer error. (Hopefully we don’t have + any of these in our own code.)
+
+ NNG scales out to engage multiple cores using a bespoke asynchronous I/O framework, + using thread pools to spread load without exceeding typical system limits.
+
+ NNG’s architecture is designed to be modular and easily grasped by developers + unfamiliar with the code base. The code is also well documented.
+
+ Because it avoids ties to file descriptors, and avoids confusing interlocking state + machines, it is easier to add new protocols and transports to NNG. This was demonstrated by the addition + of the TLS and ZeroTier transports.
+
+ NNG provides TLS 1.2 and ZeroTier transports, offering support for robust and industry + standard authentication and encryption. In addition, it is hardened to be resilient against malicious + attackers, with special consideration given to use in a hostile Internet.
+
+ NNG eschews slavish adherence parts of the more complex and less well understood POSIX + APIs, while adopting the semantics that are familiar and useful. New APIs are intuitive, and the optional + support for separating protocol context and state from sockets makes creating concurrent applications + vastly simpler than previously possible.
+This project offers both wire compatibility and API compatibility, so most nanomsg + users can begin using + NNG right away.
++ Existing nanomsg and mangos applications can inter-operate with NNG applications automatically.
+
+ NNG supports Linux, macOS, Windows (Vista or better), illumos, + Solaris, FreeBSD, + Android, and iOS. Most other POSIX platforms should work out of the box but have not been tested. Very old + versions of otherwise supported platforms might not work.
+
+ + To build this project, you will need a C99 compatible compiler and CMake version 3.13 or + newer. +
+We recommend using the Ninja build system (pass "-G Ninja" + to CMake) when + you + can. (And not just because + Ninja sounds like "NNG" — it’s also blindingly fast and has made our lives as developers measurably better.) +
+If you want to build with TLS support you will also need + mbedTLS. See + docs/BUILD_TLS.adoc for details. +
+With a Linux or UNIX environment:
+$ mkdir build +$ cd build +$ cmake -G Ninja .. +$ ninja +$ ninja test +$ ninja install+