= nng - nanomsg-next-gen

image:https://img.shields.io/badge/license-MIT-blue.svg[MIT License]
image:https://img.shields.io/circleci/project/github/nanomsg/nng.svg?label=[Linux Status,link="https://circleci.com/gh/nanomsg/nng"]
image:https://img.shields.io/appveyor/ci/nanomsg/nng/master.svg?label=windows[Windows Status,link="https://ci.appveyor.com/project/nanomsg/nng"]
image:https://codecov.io/gh/nanomsg/nng/branch/master/graph/badge.svg?label=coverage[Coverage,link="https://codecov.io/gh/nanomsg/nng"]

This repository represents a work in progress rewrite of the SP protocol
library called "libnanomsg".  This is pre-release, but at this point you
can start using it for development, as we believe we are getting closer
to release readiness.

Review and testing feedback are appreciated however; but please understand
that the project is still preliminary.

This is a work in progress, and is *not* suitable for production use.
When the library is ready for broader consumption, an
announcement will be posted on the nanomsg mailing list and website.

Some https://nanomsg.github.io/nng/man/[manual pages] are posted
on GitHub pages.

If you are looking for the current production version of nanomsg, please
see the https://github.com/nanomsg/nanomsg[nanomsg repo].

If you want to build and test yourself, you need CMake version 3.1, and
you can use standard CMake build recipes.  (We highly recommend using
https://ninja-build.org[Ninja] as it is much faster than traditional
build systems.) On a Linux/UNIX system, if you have Ninja already
installed, you can for example do:

[source,sh]
----
  $ mkdir build
  $ cmake -G Ninja ..
  $ ninja
  $ ninja test
----

This library can be compiled with support for TLS, which enables
the use of the "tls+tcp://" and "wss://" schemes.  In order to this,
configure with `-DNNG_ENABLE_TLS=ON`.

NOTE: The `NNG_ENABLE_TLS` library depends on the ARM
https://tls.mbed.org[mbedTLS] library.  This library is available
in packaged form for many systems, and can be built for just about
any of the others.  However, please be aware of the licensing
implications, because the mbedTLS library carries other licensing
requirements (either Apache or GPL) than _nng_.
either Apache or GPL licenses.

Documentation is a work in progres -- initial pages are
https://nanomsg.github.io/nng[online], but there is much missing.
You can also explore the `nng.h` header file, which provides the public
API. A legacy compatible `nng_compat.h` header is available and
offers API compatibility with legacy _nanomsg_.

== Commercial Support

Please contact mailto:info@staysail.tech[Staysail Systems, Inc.] to
inquire about commercial support.
