NNG Reference Manual
Free!
With Membership
$9.99
Suggested price

NNG Reference Manual

About the Book

NNG (Nanomsg Next Generation) is a lightweight, broker-less messaging framework compatible with, and superior to, nanomsg.

This is the official Reference Manual for NNG, collected from the manual pages included with the distribution and located online at the official NNG site. Purchases of this book help support the continued development of NNG.

The sample books are identical to the purchasable books, so you can download the content for free. If you like the content, please consider coming back here and buying the book! (No need to re-download it though!)

About the Author

Garrett D'Amore
Garrett D'Amore

Garrett has over 2 decades of experience building technologies for networking, systems, and storage, and leading technical teams to success.

He is most widely known as the founder of illumos, and the maintainer of nanomsg, but has developed software used in FreeBSDNetBSDSolarisZFS and others. He is the principal author of NNG, mangos (a compatible system written in pure Go) and a number of other open source projects.

Garrett currently lives in North San Diego county, with his beautiful wife, and their two sons, two dogs, and one snake.

Table of Contents

NNG™ Reference Manual

About This Book

  Acknowledgements

Commands and Utilities

  nngcat

Library Functions

  libnng

  nng_aio_abort

  nng_aio_alloc

  nng_aio_cancel

  nng_aio_count

  nng_aio_finish

  nng_aio_free

  nng_aio_get_input

  nng_aio_get_msg

  nng_aio_get_output

  nng_aio_result

  nng_aio_set_input

  nng_aio_set_iov

  nng_aio_set_msg

  nng_aio_set_output

  nng_aio_set_timeout

  nng_aio_stop

  nng_aio_wait

  nng_alloc

  nng_bus_open

  nng_close

  nng_ctx_close

  nng_ctx_getopt

  nng_ctx_open

  nng_ctx_recv

  nng_ctx_send

  nng_ctx_setopt

  nng_device

  nng_dial

  nng_dialer_close

  nng_dialer_create

  nng_dialer_getopt

  nng_dialer_setopt

  nng_dialer_start

  nng_free

  nng_getopt

  nng_inproc_register

  nng_ipc_register

  nng_listen

  nng_listener_close

  nng_listener_create

  nng_listener_getopt

  nng_listener_setopt

  nng_listener_start

  nng_msg_alloc

  nng_msg_append

  nng_msg_body

  nng_msg_chop

  nng_msg_clear

  nng_msg_dup

  nng_msg_free

  nng_msg_get_pipe

  nng_msg_header

  nng_msg_header_append

  nng_msg_header_chop

  nng_msg_header_clear

  nng_msg_header_insert

  nng_msg_header_len

  nng_msg_header_trim

  nng_msg_insert

  nng_msg_len

  nng_msg_realloc

  nng_msg_set_pipe

  nng_msg_trim

  nng_pair_open

  nng_pipe_close

  nng_pipe_getopt

  nng_pub_open

  nng_pull_open

  nng_push_open

  nng_recv

  nng_recv_aio

  nng_recvmsg

  nng_rep_open

  nng_req_open

  nng_respondent_open

  nng_send

  nng_send_aio

  nng_sendmsg

  nng_setopt

  nng_sleep_aio

  nng_strdup

  nng_strerror

  nng_strfree

  nng_sub_open

  nng_surveyor_open

  nng_tcp_register

  nng_tls_register

  nng_url_clone

  nng_url_free

  nng_url_parse

  nng_version

  nng_ws_register

  nng_wss_register

  nng_zt_register

Supplemental HTTP Functions

  nng_http_client_alloc

  nng_http_client_connect

  nng_http_client_free

  nng_http_client_get_tls

  nng_http_client_set_tls

  nng_http_conn_close

  nng_http_conn_read

  nng_http_conn_read_all

  nng_http_conn_read_req

  nng_http_conn_read_res

  nng_http_conn_write

  nng_http_conn_write_all

  nng_http_conn_write_req

  nng_http_conn_write_res

  nng_http_handler_alloc

  nng_http_handler_free

  nng_http_handler_get_data

  nng_http_handler_set_data

  nng_http_handler_set_host

  nng_http_handler_set_method

  nng_http_handler_set_tree

  nng_http_hijack

  nng_http_req_add_header

  nng_http_req_alloc

  nng_http_req_copy_data

  nng_http_req_del_header

  nng_http_req_free

  nng_http_req_get_header

  nng_http_req_get_method

  nng_http_req_get_uri

  nng_http_req_get_version

  nng_http_req_set_data

  nng_http_req_set_header

  nng_http_req_set_method

  nng_http_req_set_uri

  nng_http_req_set_version

  nng_http_res_add_header

  nng_http_res_alloc

  nng_http_res_alloc_error

  nng_http_res_copy_data

  nng_http_res_del_header

  nng_http_res_free

  nng_http_res_get_header

  nng_http_res_get_reason

  nng_http_res_get_status

  nng_http_res_get_version

  nng_http_res_set_data

  nng_http_res_set_header

  nng_http_res_set_reason

  nng_http_res_set_status

  nng_http_res_set_version

  nng_http_server_add_handler

  nng_http_server_del_handler

  nng_http_server_get_tls

  nng_http_server_hold

  nng_http_server_release

  nng_http_server_set_tls

  nng_http_server_start

  nng_http_server_stop

Supplemental Functions

  nng_clock

  nng_cv_alloc

  nng_cv_free

  nng_cv_until

  nng_cv_wait

  nng_cv_wake

  nng_cv_wake1

  nng_msleep

  nng_mtx_alloc

  nng_mtx_free

  nng_mtx_lock

  nng_mtx_unlock

  nng_opts_parse

  nng_random

  nng_thread_create

  nng_thread_destroy

Supplemental TLS Functions

  nng_tls_config_alloc

  nng_tls_config_auth_mode

  nng_tls_config_ca_chain

  nng_tls_config_ca_file

  nng_tls_config_cert_key_file

  nng_tls_config_free

  nng_tls_config_own_cert

  nng_tls_config_server_name

Macros and Types

  nng_aio

  nng_ctx

  nng_dialer

  nng_duration

  nng_iov

  nng_listener

  nng_msg

  nng_options

  nng_pipe

  nng_sockaddr

  nng_sockaddr_in

  nng_sockaddr_in6

  nng_sockaddr_inproc

  nng_sockaddr_ipc

  nng_sockaddr_zt

  nng_socket

Protocols and Transports

  nng

  nng_bus

  nng_inproc

  nng_ipc

  nng_pair

  nng_pub

  nng_pull

  nng_push

  nng_rep

  nng_req

  nng_respondent

  nng_sub

  nng_surveyor

  nng_tcp

  nng_tls

  nng_ws

  nng_zerotier

Compatible Library Functions

  nn_allocmsg

  nn_bind

  nn_close

  nn_cmsg

  nn_connect

  nn_device

  nn_errno

  nn_freemsg

  nn_get_statistic

  nn_getsockopt

  nn_poll

  nn_reallocmsg

  nn_recv

  nn_recvmsg

  nn_send

  nn_sendmsg

  nn_setsockopt

  nn_shutdown

  nn_socket

  nn_strerror

  nn_term

  nng_compat

Appendix A: Software License

Index (PDF only)

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub