Urbit's inter-process communication (IPC) vane.
Lick manages IPC ports, and the communication between Urbit applications and POSIX applications via these ports. Other vanes and applications ask Lick to open an IPC port, notify it when something is connected or disconnected, and transfer data between itself and the Unix application.
The IPC ports Lick creates are Unix domain sockets (
AF_UNIX address family) of the
The format of the full message with header and data sent to and from the socket is as follows:
|1 byte||4 bytes||n bytes|
|version||jam size in bytes||jamfile|
The version is currently
The ++jamfile contains a pair of
noun. The process on the host OS must therefore strip the first 5 bytes,
++cue the jamfile, check the mark and (most likely) convert the noun into a native data structure.
Here are some libraries that can cue/jam:
Lick has no novel data types in its API apart from
name, which is just a
path representing the name of a socket.
API Reference - The
tasks Lick takes and the
gifts it returns.
Scry Reference - The scry endpoints of Lick.
Examples - Practical examples of using Lick's
Guide - A thorough walk-through of using Lick.