Introduction
The Multicast SDK enables applications to connect and interface with the Marlin network and serves as a common building block for any developer needing to use the Marlin network for realtime communication between their nodes.
What does the Multicast SDK give you?
PubSub abstraction
The PubSub (short for Publish/Subscribe) abstraction is an extremely powerful and flexible abstraction for multicast communication modelled around the concept of message channels. Subscribers register interest in certain channels and publishers publish relevant messages in these channels which are automatically pushed to registered subscribers.
Adaptability
The Multicast SDK can discover nodes in the Marlin network, select good peers and automatically establish PubSub channels with them. The application can thus adapt to changes in the Marlin network without intervention from the developer or the user.
Responsiveness
The Multicast SDK is fully asynchronous utilizing non-blocking networking APIs. This enables developers to build responsive applications with minimal effort.
Usage
Instructions to use the Multicast SDK is available in the User Guides section linked below.
📄️ Multicast SDK
Build multiplayer games, streaming, group messaging apps using the multicast SDK
The gateways used to interact with the Marlin Relay are built using the Multicast SDK.
Technical details
Some technical details of interest are presented in the subsections below.
📄️ Endianness
Endianness refers to the ordering of components in a representation of an entity. For our purposes, we use it to refer to the ordering of bytes in multi-byte integers.
📄️ PubSub
PubSub (short for Publish/Subscribe) is an abstraction for a messaging system where senders don't send the message directly to a specific receiver. Instead, messages are grouped into channels that interested receivers (also called subscribers) can subscribe to. Senders (also called publishers) publish messages to there channels which are then independently transmitted to the receivers.
📄️ Transport Factories
Transports are created by transport factories in one of two ways:
📄️ Transports
The transport abstraction models a communication channel between two entities using which one side can send/receive data to/from the other side.