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: Lightweight Messaging Library

+

A lightweight, broker-less library

+ Download +
+
+
+
+
+
+
+
+
+

Introduction

+

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.

+
+
+
+
+
+

+ Features +

+
+
+
+ +

Reliability

+

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.)

+
+
+
+
+ +

Scalability

+

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.

+
+
+
+
+ +

Maintainability

+

NNG’s architecture is designed to be modular and easily grasped by developers + unfamiliar with the code base. The code is also well documented.

+
+
+
+
+ +

Extensibility

+

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.

+
+
+
+
+ +

Security

+

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.

+
+
+
+
+ +

Usability

+

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.

+
+
+
+
+
+
+
+
+
+

Compatibility

+

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.

+
+
+ +
+
+
+
+
+
+

Supported Platforms

+

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.

+
+
+ +
+
+
+
+
+
+

+ Quick Start +

+
+
+

+ 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
+
+
+
+
+
\ No newline at end of file -- cgit v1.2.3-70-g09d2