diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-10-11 23:54:19 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-10-11 23:54:19 -0700 |
| commit | 522293fc3c121af6189bdca0b4285c03118d9cd6 (patch) | |
| tree | 1759e3a9c98d17ade73452084db5afb3a3d1fda7 /docs | |
| parent | 83d487d113808d271c38d677ed00dd9ddd55a9b0 (diff) | |
| download | nng-522293fc3c121af6189bdca0b4285c03118d9cd6.tar.gz nng-522293fc3c121af6189bdca0b4285c03118d9cd6.tar.bz2 nng-522293fc3c121af6189bdca0b4285c03118d9cd6.zip | |
Convert inproc doc to mdbook.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/man/nng_inproc.7.adoc | 62 | ||||
| -rw-r--r-- | docs/ref/SUMMARY.md | 1 | ||||
| -rw-r--r-- | docs/ref/tran/index.md | 1 | ||||
| -rw-r--r-- | docs/ref/tran/inproc.md | 50 |
4 files changed, 52 insertions, 62 deletions
diff --git a/docs/man/nng_inproc.7.adoc b/docs/man/nng_inproc.7.adoc deleted file mode 100644 index 6cdb07b1..00000000 --- a/docs/man/nng_inproc.7.adoc +++ /dev/null @@ -1,62 +0,0 @@ -= nng_inproc(7) -// -// Copyright 2024 Staysail Systems, Inc. <info@staysail.tech> -// Copyright 2018 Capitar IT Group BV <info@capitar.com> -// -// This document is supplied under the terms of the MIT License, a -// copy of which should be located in the distribution where this -// file was obtained (LICENSE.txt). A copy of the license may also be -// found online at https://opensource.org/licenses/MIT. -// - -== NAME - -nng_inproc - intra-process transport - -== DESCRIPTION - -(((transport, _inproc_))) -(((intra-process))) -The ((_inproc_ transport)) provides communication support between -sockets within the same process. -This may be used as an alternative -to slower transports when data must be moved within the same process. - -This transport tries hard to avoid copying data, and thus is very -light-weight. - -=== URI Format - -(((URI, `inproc://`))) -This transport uses URIs using the scheme `inproc://`, followed by -an arbitrary string of text, terminated by a `NUL` byte. - -Multiple URIs can be used within the -same application, and they will not interfere with one another. - -Two applications may also use the same URI without interfering with each -other, and they will be unable to communicate with each other using -that URI. - -=== Socket Address - -When using an xref:nng_sockaddr.5.adoc[`nng_sockaddr`] structure, -the actual structure is of type -xref:nng_sockaddr_inproc.5.adoc[`nng_sockaddr_inproc`]. - -=== Transport Options - -The _inproc_ transport has no special options. - -NOTE: While _inproc_ accepts the option -xref:nng_options.5.adoc#NNG_OPT_RECVMAXSZ[`NNG_OPT_RECVMAXSZ`] for -compatibility, the value of the option is ignored with no enforcement. -As _inproc_ peers are in the same address space, they are implicitly trusted, -and thus it makes no sense to spend cycles protecting a program from itself. - -== SEE ALSO - -[.text-left] -xref:nng_inproc_register.3.adoc[nng_inproc_register(3)], -xref:nng_sockaddr_inproc.5.adoc[nng_sockaddr_inproc(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/ref/SUMMARY.md b/docs/ref/SUMMARY.md index c994ecd5..eb20a8c8 100644 --- a/docs/ref/SUMMARY.md +++ b/docs/ref/SUMMARY.md @@ -25,6 +25,7 @@ - [Transports](./tran/index.md) - [BSD Socket](./tran/socket.md) + - [Intra-Process Transport](./tran/inproc.md) - [UDP](./tran/udp.md) [Index](./indexing.md) diff --git a/docs/ref/tran/index.md b/docs/ref/tran/index.md index 8cefa14b..aa5b2ada 100644 --- a/docs/ref/tran/index.md +++ b/docs/ref/tran/index.md @@ -3,4 +3,5 @@ This section documents transports for Scalabity Protocols implemented by NNG. - [BSD Socket](socket.md) +- [Intra-Process Transport](inproc.md) - [UDP](udp.md) diff --git a/docs/ref/tran/inproc.md b/docs/ref/tran/inproc.md new file mode 100644 index 00000000..9c0f917d --- /dev/null +++ b/docs/ref/tran/inproc.md @@ -0,0 +1,50 @@ +# INPROC Transport + +The {{i:*inproc* transport}}{{hi:*inproc*}}{{i:intra-process}} provides communication support between +sockets within the same process. +This may be used as an alternative +to slower transports when data must be moved within the same process. + +This transport tries hard to avoid copying data, and thus is very +light-weight. + +## URI Format + +This transport uses URIs using the scheme {{i:`inproc://`}}, followed by +an arbitrary string of text, terminated by a `NUL` byte. + +Multiple URIs can be used within the +same application, and they will not interfere with one another. + +Two applications may also use the same URI without interfering with each +other, and they will be unable to communicate with each other using +that URI. + +## Socket Address + +When using an [`nng_sockaddr`][sockaddr] structure, +the actual structure is of type +[`nng_sockaddr_inproc`][sockaddr_inproc]. + +## Transport Options + +The _inproc_ transport has no special options. + +> [!NOTE] +> While _inproc_ accepts the option `NNG_OPT_RECVMAXSZ` for +> compatibility, the value of the option is ignored with no enforcement. +> As _inproc_ peers are in the same address space, they are implicitly +> trusted, so the protection afforded by `NNG_OPT_RECVMAXSZ` is unnecessary. + +## Mixing Implementations + +When mixing the _NNG_ library with other implementations of these +protocols in the same process (such as the _mangos_ +or _libnanomsg_ implementations), it will not be possible to utilize +the _inproc_ transport to communicate across this boundary. + +This limitation also extends to using different instances of the _NNG_ +library within the same process. + +[sockaddr]: TODO.md +[sockaddr_inproc]: TODO.md |
