Swirl – a Multi-Peer Streaming Media Platform

Copyright © 2014-2038 SkunkWerks GmbH

Version: 03f90d9

Overview

Swirl is an implementation of the IETF PPSP protocol, RFC7574 in Erlang/OTP, and released under the ALv2 license.

Description

The Peer-to-Peer Streaming Peer Protocol (PPSPP) is a protocol for disseminating the same content to a group of interested parties in a streaming fashion. PPSPP supports streaming of both prerecorded (on- demand) and live audio/video content. It is based on the peer-to- peer paradigm, where clients consuming the content are put on equal footing with the servers initially providing the content, to create a system where everyone can potentially provide upload bandwidth. It has been designed to provide short time-till-playback for the end user and to prevent disruption of the streams by malicious peers. PPSPP has also been designed to be flexible and extensible. It can use different mechanisms to optimize peer uploading, prevent freeriding, and work with different peer discovery schemes (centralized trackers or Distributed Hash Tables). It supports multiple methods for content integrity protection and chunk addressing. Designed as a generic protocol that can run on top of various transport protocols, it currently runs on top of UDP using Low Extra Delay Background Transport (LEDBAT) for congestion control.

http://www.rfc-editor.org/info/rfc7574

Modules

channel_sup
channel_worker
convert
peer_sup
peer_worker
ppspp_channel
ppspp_chunk
ppspp_datagram
ppspp_handshake
ppspp_have
ppspp_message
ppspp_options
swarm_sup
swarm_worker
swirl
swirl_app
swirl_sup