Swirl Implementation

The Swirl project aims to deliver a fully functional implementation of the new IETF Transport Protocol Peer-to-Peer Streaming Peer Protocol, known as PPSP, in a number of languages and frameworks.

The first implementation is being written in Erlang/OTP, which is a functional programming language combined with a robust set of application libraries designed and tested for writing scalable and reliable telco and internet services. Erlang is widely used in mission-critical applications today, from military, financial, telecoms, medical, as well as internet-scale games, databases, social networks, and messaging services.


The chosen approach is to implement swirl in phases, and funding is being provided generously by NLNet for the first stages:

  1. a decoder, taking internet / wire format to internal parsed format
  2. an encoder, performing the reverse step from internal format to the wire
  3. a storage layer comprising merkle tree, binmap lookups and key-value storage
  4. simple deployment including FreeBSD and Linux/docker support

Further information on timeframes can be found in the high level planning guide.

Understanding the Codebase

To make the most sense of the application itself, it’s recommended to read in order:

Future Plans

Further phases are planned, currently: