nanomsg(7)
==========


NAME
----
nanomsg - scalability protocols library


SYNOPSIS
--------
*cc* ['flags'] 'files' *-lnanomsg* ['libraries']


DESCRIPTION
-----------

Following functions are exported by nanomsg library:

Create an SP socket::
    <<nn_socket.3.txt#,nn_socket(3)>>

Close an SP socket::
    <<nn_close.3.txt#,nn_close(3)>>

Set a socket option::
    <<nn_setsockopt.3.txt#,nn_setsockopt(3)>>

Retrieve a socket option::
    <<nn_getsockopt.3.txt#,nn_getsockopt(3)>>

Add a local endpoint to the socket::
    <<nn_bind.3.txt#,nn_bind(3)>>

Add a remote endpoint to the socket::
    <<nn_connect.3.txt#,nn_connect(3)>>

Remove an endpoint from the socket::
    <<nn_shutdown.3.txt#,nn_shutdown(3)>>

Send a message::
    <<nn_send.3.txt#,nn_send(3)>>

Receive a message::
    <<nn_recv.3.txt#,nn_recv(3)>>

Fine-grained alternative to nn_send::
    <<nn_sendmsg.3.txt#,nn_sendmsg(3)>>

Fine-grained alternative to nn_recv::
    <<nn_recvmsg.3.txt#,nn_recvmsg(3)>>

Allocation of messages::
    <<nn_allocmsg.3.txt#,nn_allocmsg(3)>>
    <<nn_reallocmsg.3.txt#,nn_reallocmsg(3)>>
    <<nn_freemsg.3.txt#,nn_freemsg(3)>>

Manipulation of message control data::
    <<nn_cmsg.3.txt#,nn_cmsg(3)>>

Multiplexing::
    <<nn_poll.3.txt#,nn_poll(3)>>

Retrieve the current errno::
    <<nn_errno.3.txt#,nn_errno(3)>>

Convert an error number into human-readable string::
    <<nn_strerror.3.txt#,nn_strerror(3)>>

Query the names and values of nanomsg symbols::
    <<nn_symbol.3.txt#,nn_symbol(3)>>

Query properties of nanomsg symbols::
    <<nn_symbol_info.3.txt#,nn_symbol_info(3)>>

Query statistics on a socket::
    <<nn_get_statistic.3.txt#,nn_get_statistic(3)>>

Start a device::
    <<nn_device.3.txt#,nn_device(3)>>

Notify all sockets about process termination::
    <<nn_term.3.txt#,nn_term(3)>>

Environment variables that influence nanomsg work::
    <<nn_env.7.txt#,nn_env(7)>>

Following scalability protocols are provided by nanomsg:

One-to-one protocol::
    <<nn_pair.7.txt#,nn_pair(7)>>

Request/reply protocol::
    <<nn_reqrep.7.txt#,nn_reqrep(7)>>

Publish/subscribe protocol::
    <<nn_pubsub.7.txt#,nn_pubsub(7)>>

Survey protocol::
    <<nn_survey.7.txt#,nn_survey(7)>>

Pipeline protocol::
    <<nn_pipeline.7.txt#,nn_pipeline(7)>>

Message bus protocol::
    <<nn_bus.7.txt#,nn_bus(7)>>

Following transport mechanisms are provided by nanomsg:

In-process transport::
    <<nn_inproc.7.txt#,nn_inproc(7)>>

Inter-process transport::
    <<nn_ipc.7.txt#,nn_ipc(7)>>

TCP transport::
    <<nn_tcp.7.txt#,nn_tcp(7)>>

WebSocket transport::
    <<nn_ws.7.txt#,nn_ws(7)>>

The following tool is installed with the library:

nanocat::
    <<nanocat.1.txt#,nanocat(1)>>

AUTHORS
-------
link:mailto:garrett@damore.org[Garrett D'Amore]
link:mailto:sustrik@250bpm.com[Martin Sustrik]

