librecast(7)

NAME
librecast - C multicast library

DESCRIPTION
Librecast is a C multicast library which aims to make working with multicast easier.

Librecast extends IPv6 multicast to provide a multicast communication layer with support for encodings, encryption, file syncing, router topologies and overlay multicast.

  Librecast Objects
The Librecast C API has a number of basic objects, which are used throughout Librecast, such as Contexts, Sockets, Channels, and Routers.

Context (lc_ctx_t)
    A Librecast Context is the root object to which all other objects are linked. It is required for creating Sockets, Channels, Routers and for calling many API functions.

    Default settings for other objects, such as sending rate limits, can be set on the Context, and overridden when other objects are created.

    It is not necessary to individually free Sockets, Channels or Routers. A single call to lc_ctx_free(3) will free all associated objects.

Socket (lc_socket_t)
    Librecast Sockets are endpoints for multicast communication and can be bound to one or more Librecast Channels.

    Sockets can be IPv6 or socketpair. Support for Websocket and WebRTC Sockets is planned for an upcoming release.

Channel (lc_channel_t)
    A Librecast Channel is an analogue for a multicast group with settings, such as encodings (eg. encryption, RaptorQ FEC), rate-limits etc. applied.

    A Channel must be bound to a Socket before it can be used.

Router (lc_router_t)
    The Router API adds a number of function calls to the Librecast C Library for creating and managing an in-memory multicast router. This forms the basis of several other APIs, such as the Websocket API, WebRTC API and allows for network simulations and measurements.

BUGS
If you find one, email bugs@librecast.net or raise an issue in our bug tracker at https://bugs.librecast.net/.

SEE ALSO
The Librecast website has more information: https://librecast.net/

lc_ctx_new(3), lc_socket_new(3), lc_socketpair(3), lc_channel_new(3), lc_share(3), lc_mdex_init(3), lcrq(7)