Popular Libraries


swift: the multiparty transport protocol (aka BitTorrent at the transport layer) Differently from TCP, the protocol does not use the ordered data stream abstraction. Effectively, it splits a file into 1KB packets and sends them around. The secret sauce is Merkle hash trees and binmaps.

see doc/index.html for marketing stuff, ideas and rants doc/swift.txt for protocol draft spec *.cpp for the actual code swift.cpp is the main exec file; may run as e.g.

    ./swift -t node300.das2.ewi.tudelft.nl:20000 -h \
    d1502706c46779d361a1d562a10da0a45c4c40e5 -f \

...to retrieve video and save it to a file.

Alternatively, you might play with the HTTP gateway, the preliminary
version. First, run the seeder-tracker: 

    $ ./swift -f ~/Downloads/big_buck_bunny_480p_stereo.ogg -l
    Root hash: 7c462ad1d980ba44ab4b819e29004eb0bf6e6d5f

...then you may try running the swift-HTTP gateway...

    ./swift -t localhost:20000 -g -w

...and finally you may point your browser at the gateway...


If you use an HTML5 browser (Chrome preferred), you are likely to see
the bunny trailer at this point...