HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
skunkwerks
swirl
CSS2014–2014
skunkwerks / swirl

swirl

[alpha] IETF PPSP RFC7574 in Erlang/OTP -- an incomplete non-functional partial implementation

3Distinct people
3Mentions
0Explicit recommenders
171GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

[alpha] IETF PPSP RFC7574 in Erlang/OTP -- an incomplete non-functional partial implementation

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week3 dated mentions

Observed mentions: 2014-02-27 21:48:06 UTC to 2014-09-07 21:07:08 UTC. Weeks start Monday, UTC.

0122014-02-24 00:00:00 UTC to 2014-03-03 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsFeb 242014-03-03 00:00:00 UTC to 2014-03-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-10 00:00:00 UTC to 2014-03-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-17 00:00:00 UTC to 2014-03-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-24 00:00:00 UTC to 2014-03-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-31 00:00:00 UTC to 2014-04-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-07 00:00:00 UTC to 2014-04-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-14 00:00:00 UTC to 2014-04-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-21 00:00:00 UTC to 2014-04-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-28 00:00:00 UTC to 2014-05-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-05 00:00:00 UTC to 2014-05-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-12 00:00:00 UTC to 2014-05-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-19 00:00:00 UTC to 2014-05-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-26 00:00:00 UTC to 2014-06-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMay 262014-06-02 00:00:00 UTC to 2014-06-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-09 00:00:00 UTC to 2014-06-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-16 00:00:00 UTC to 2014-06-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-23 00:00:00 UTC to 2014-06-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-30 00:00:00 UTC to 2014-07-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-07 00:00:00 UTC to 2014-07-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-14 00:00:00 UTC to 2014-07-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-21 00:00:00 UTC to 2014-07-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-28 00:00:00 UTC to 2014-08-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-04 00:00:00 UTC to 2014-08-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-11 00:00:00 UTC to 2014-08-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-18 00:00:00 UTC to 2014-08-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-25 00:00:00 UTC to 2014-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-09-01 00:00:00 UTC to 2014-09-08 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 1

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 242014-02-24 00:00:00 UTC2014-03-03 00:00:00 UTC202
Mar 32014-03-03 00:00:00 UTC2014-03-10 00:00:00 UTC000
Mar 102014-03-10 00:00:00 UTC2014-03-17 00:00:00 UTC000
Mar 172014-03-17 00:00:00 UTC2014-03-24 00:00:00 UTC000
Mar 242014-03-24 00:00:00 UTC2014-03-31 00:00:00 UTC000
Mar 312014-03-31 00:00:00 UTC2014-04-07 00:00:00 UTC000
Apr 72014-04-07 00:00:00 UTC2014-04-14 00:00:00 UTC000
Apr 142014-04-14 00:00:00 UTC2014-04-21 00:00:00 UTC000
Apr 212014-04-21 00:00:00 UTC2014-04-28 00:00:00 UTC000
Apr 282014-04-28 00:00:00 UTC2014-05-05 00:00:00 UTC000
May 52014-05-05 00:00:00 UTC2014-05-12 00:00:00 UTC000
May 122014-05-12 00:00:00 UTC2014-05-19 00:00:00 UTC000
May 192014-05-19 00:00:00 UTC2014-05-26 00:00:00 UTC000
May 262014-05-26 00:00:00 UTC2014-06-02 00:00:00 UTC000
Jun 22014-06-02 00:00:00 UTC2014-06-09 00:00:00 UTC000
Jun 92014-06-09 00:00:00 UTC2014-06-16 00:00:00 UTC000
Jun 162014-06-16 00:00:00 UTC2014-06-23 00:00:00 UTC000
Jun 232014-06-23 00:00:00 UTC2014-06-30 00:00:00 UTC000
Jun 302014-06-30 00:00:00 UTC2014-07-07 00:00:00 UTC000
Jul 72014-07-07 00:00:00 UTC2014-07-14 00:00:00 UTC000
Jul 142014-07-14 00:00:00 UTC2014-07-21 00:00:00 UTC000
Jul 212014-07-21 00:00:00 UTC2014-07-28 00:00:00 UTC000
Jul 282014-07-28 00:00:00 UTC2014-08-04 00:00:00 UTC000
Aug 42014-08-04 00:00:00 UTC2014-08-11 00:00:00 UTC000
Aug 112014-08-11 00:00:00 UTC2014-08-18 00:00:00 UTC000
Aug 182014-08-18 00:00:00 UTC2014-08-25 00:00:00 UTC000
Aug 252014-08-25 00:00:00 UTC2014-09-01 00:00:00 UTC000
Sep 12014-09-01 00:00:00 UTC2014-09-08 00:00:00 UTC101

What Hacker News says

3 sources
Bittorrent the protocol was built so that you can fetch any part of the content in any way order you want (that's the beauty of it: traditional forward streaming is not different than out-of-order streaming) Bittorrent the network, now, lives because peers have an incentive to behave correctly and spread the content on nodes as much as possible. It's a specific use of the protocol, but not the only one. The problem is that many people (even technical) conflate the protocol with how it's used the most: spread stuff illegally. In order to do this there is a need for peers fetching parts out-of-order. But if, say, Netflix were to distribute its content over Bittorrent, it would be perfectly fine to stream in-order, because the Netflix peers all have all the content so there is no need to spread the content here. And there already is an enhan
Read the rest
ced protocol, in the IETF pipeline: PPSP [0]. It integrates a lot of good things that were incompatible with Bittorrent yet desirable. It's also called swift (before it was cool), and has 2 implementations [1] [2]. [0] https://datatracker.ietf.org/doc/draft-ietf-ppsp-peer-protoc... [1] http://libswift.org/ [2] https://github.com/skunkwerks/swirl/
In Realtime streaming from torrents in the browser
Not yet, but integrating with apps like dropbox or similar etc is a nice feature, I'll add that to the official list. PPSP's key features are: - live streaming using an innovative method that can be easily secured - optimised for fast start - using a standard protocol (UDP) for maximum carrier friendliness - efficient storage of hash tables via binmap - use of merkle trees for verifying content without needing the whole hash table to be transferred to every client - LEDBAT for playing fair with other bandwidth on the client connections More details on these https://github.com/skunkwerks/swirl/blob/feature/docs/doc/me... and also in the IETF spec http://tools.ietf.org/html/draft-ietf-ppsp-peer-protocol
In Bringing Peer-to-Peer Streaming to the World.
Looks interesting. Erlang VM (BEAM) is a good choice for this. It is also a hard problem. I copied a short description of the protocol from their GitHub overview doc: https://github.com/skunkwerks/swirl/blob/feature/docs/doc/ov... --- PPSP is a transport protocol — it transfers a stream of opaque binary data from one location to another. It is unique amongst transport protocols as it is a many-to-many transfer protocol, that is, there is no single master server or endpoint that manages the data transfer. A swarm is a set of peers that are sharing (receiving and/or transferring) the same data, as a set of small chunks, which is identified by a unique cryptographic recursive hash of the data, called the Root Hash. ---
In Bringing Peer-to-Peer Streaming to the World.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.