---
name: "xs_inproc"
section: "7"
platform: "linux"
package: "libxs-dev"
version: "1.2.0-2"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/xs_inproc"
---

# xs\_inproc(7)

local in-process (inter-thread) transport

## NAME

xs\_inproc - local in-process (inter-thread) transport

## SYNOPSIS

The in-process transport passes messages via memory directly between threads sharing a single *context*.

## ADDRESSING

A Crossroads address string consists of two parts as follows: *transport*://*endpoint*. The *transport* part specifies the underlying transport protocol to use, and for the in-process transport shall be set to inproc. The meaning of the *endpoint* part for the in-process transport is defined below.

### Assigning a local address to a socket

When assigning a local address to a *socket* using *xs\_bind()* with the *inproc* transport, the *endpoint* shall be interpreted as an arbitrary string identifying the *name* to create. The *name* must be unique within the *context* associated with the *socket* and may be up to 256 characters in length. No other restrictions are placed on the format of the *name*.

### Connecting a socket

When connecting a *socket* to a peer address using *xs\_connect()* with the *inproc* transport, the *endpoint* shall be interpreted as an arbitrary string identifying the *name* to connect to. The *name* must have been previously created by assigning it to at least one *socket* within the same *context* as the *socket* being connected.

## WIRE FORMAT

Not applicable.

## EXAMPLES

**Assigning a local address to a socket**.

```
/* Assign the in-process name "#1" */
rc = xs_bind(socket, "inproc://#1");
assert (rc != -1);
/* Assign the in-process name "my-endpoint" */
rc = xs_bind(socket, "inproc://my-endpoint");
assert (rc != -1);
```

**Connecting a socket**.

```
/* Connect to the in-process name "#1" */
rc = xs_connect(socket, "inproc://#1");
assert (rc != -1);
/* Connect to the in-process name "my-endpoint" */
rc = xs_connect(socket, "inproc://my-endpoint");
assert (rc != -1);
```

## SEE ALSO

[**xs\_bind**(3)](/xs_bind/3.md) [**xs\_connect**(3)](/xs_connect/3.md) [**xs\_ipc**(7)](/xs_ipc/7.md) [**xs\_tcp**(7)](/xs_tcp/7.md) [**xs\_pgm**(7)](/xs_pgm/7.md) [**xs**(7)](/xs/7.md)

## AUTHORS

The Crossroads documentation was written by Martin Sustrik \<**sustrik@250bpm.com**\[1\]\> and Martin Lucina \<**martin@lucina.net**\[2\]\>.

## NOTES

- 1\.

  sustrik@250bpm.com

  mailto:sustrik@250bpm.com

- 2\.

  martin@lucina.net

  mailto:martin@lucina.net
