CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Sat, 02 Aug 2025 21:13:00 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20090103235245
location: https://web.archive.org/web/20090103235245/https://github.com/tarcieri/distribustream/tree
server-timing: captures_list;dur=0.770725, exclusion.robots;dur=0.031741, exclusion.robots.policy;dur=0.019005, esindex;dur=0.011692, cdx.remote;dur=562.349045, LoadShardBlock;dur=419.383144, PetaboxLoader3.datanode;dur=300.289364, PetaboxLoader3.resolve;dur=65.336645
x-app-server: wwwb-app201
x-ts: 302
x-tr: 1034
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
set-cookie: wb-p-SERVER=wwwb-app201; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 301
server: nginx
date: Sat, 02 Aug 2025 21:13:02 GMT
content-type: text/html; charset=utf-8
content-length: 119
x-archive-orig-server: nginx/0.6.31
x-archive-orig-date: Sat, 03 Jan 2009 23:52:42 GMT
x-archive-orig-connection: close
x-archive-orig-set-cookie: _github_ses=BAh7BzoOcmV0dXJuX3RvIhcvaW5ib3gvbmV3L3VqaWhpc2EiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhhc2h7AAY6CkB1c2VkewA%3D--7a3e0dcad1e0f1b648ff0cd53b7c1c4f4b111ab8; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
x-archive-orig-status: 301 Moved Permanently
location: https://web.archive.org/web/20090103235245/https://github.com/tarcieri/distribustream/tree/master
x-archive-orig-x-runtime: 236ms
x-archive-orig-cache-control: no-cache
x-archive-orig-content-length: 119
cache-control: max-age=1800
memento-datetime: Sat, 03 Jan 2009 23:52:45 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Tue, 18 Nov 2008 14:10:58 GMT", ; rel="prev memento"; datetime="Tue, 18 Nov 2008 14:10:58 GMT", ; rel="memento"; datetime="Sat, 03 Jan 2009 23:52:45 GMT", ; rel="last memento"; datetime="Sat, 03 Jan 2009 23:52:45 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_7_20090103234219_crawl108-c/52_7_20090103235130_crawl103.arc.gz
server-timing: captures_list;dur=0.536335, exclusion.robots;dur=0.025650, exclusion.robots.policy;dur=0.015390, esindex;dur=0.011330, cdx.remote;dur=8.847236, LoadShardBlock;dur=1290.627675, PetaboxLoader3.datanode;dur=62.674363, PetaboxLoader3.resolve;dur=310.697466, load_resource;dur=359.001600
x-app-server: wwwb-app201
x-ts: 301
x-tr: 1691
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Sat, 02 Aug 2025 21:13:04 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Sat, 03 Jan 2009 23:52:44 GMT
x-archive-orig-connection: close
x-archive-orig-set-cookie: _github_ses=BAh7ByIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7ADoOcmV0dXJuX3RvIhcvaW5ib3gvbmV3L3VqaWhpc2E%3D--645983cd320cc86f0ba553840636b6d76dda12f7; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
x-archive-orig-status: 200 OK
x-archive-orig-x-runtime: 2126ms
x-archive-orig-etag: "952648dba8f68eb05d5c7b1b21a53e5d"
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-orig-content-length: 20060
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sat, 03 Jan 2009 23:52:45 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sat, 03 Jan 2009 23:52:45 GMT", ; rel="memento"; datetime="Sat, 03 Jan 2009 23:52:45 GMT", ; rel="next memento"; datetime="Mon, 05 Jan 2009 08:30:38 GMT", ; rel="last memento"; datetime="Mon, 05 Jan 2009 08:30:38 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_7_20090103234219_crawl108-c/52_7_20090103235130_crawl103.arc.gz
server-timing: captures_list;dur=0.439011, exclusion.robots;dur=0.018826, exclusion.robots.policy;dur=0.011940, esindex;dur=0.009727, cdx.remote;dur=32.562798, LoadShardBlock;dur=803.501660, PetaboxLoader3.datanode;dur=282.927918, PetaboxLoader3.resolve;dur=587.328206, load_resource;dur=114.875405
x-app-server: wwwb-app201
x-ts: 200
x-tr: 1001
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
tarcieri's distribustream at master — GitHub
We got nominated! Help us out and vote for GitHub as Best Bootstrapped Startup of 2008. (You can vote once a day.) [ hide ]
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Description: | DistribuStream is a fully open peercasting system which provides on-demand or live streaming media at a fraction of the normal cost. |
Homepage: | https://distribustream.org |
Clone URL: |
git://github.com/tarcieri/distribustream.git
Give this clone URL to anyone.
git clone git://github.com/tarcieri/distribustream.git
|

Tony Arcieri (author)
Sat Jun 14 15:07:31 -0700 2008
name | age | message | |
---|---|---|---|
![]() |
CHANGES | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
COPYING | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
README | Sat Jun 14 14:36:39 -0700 2008 | Initial commit [Tony Arcieri] |
![]() |
Rakefile | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
bin/ | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
conf/ | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
distribustream.gemspec | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
lib/ | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
pdtp-specification.xml | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
spec/ | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
status/ | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
![]() |
tools/ | Sat Jun 14 15:07:31 -0700 2008 | Initial codebase [Tony Arcieri] |
README
= DistribuStream Welcome to DistribuStream! (https://distribustream.org) DistribuStream is a fully open peercasting system which allows on-demand or live streaming media to be delivered at a fraction of the normal cost. == Usage The DistribuStream gem includes three config files that can be located in the conf directory of the gem: * example.yml - A standard example file, configuring for 5kB chunks * debug.yml - Same as example.yml, but configured for additional debug info * bigchunk.yml - An example config file, using 250kB chunks Chunk size controls how large the segments which are exchanged between peers are. Larger chunk sizes reduce the amount of control traffic the server sends, but increase the probability of errors. To begin, copy one of these config file and edit it to your choosing. Be sure to set the host address to bind to and optionally the vhost you wish to identify as. Next, start the DistribuStream server: dstream --conf myconfig.yml You can think of the DistribuStream server like a regular web or FTP server. It looks through the specified directory and makes the files underneath it available to the peer-to-peer network. You can see what's going on through the web interface, which runs one port above the port you configured the server to listen on. If the server is listening on the default port of 6086, you can reach the web interface at: https://myserver.url:6087/status/ To test your server, use the DistribuStream client: dsclient pdtp://myserver.url/file.ext This will download file.ext from your DistribuStream server. The client also supports non-seekable output such as pipes. To play streaming media as it downloads, you can: dsclient -o pdtp://myserver.url/file.ext | mediaplayer - == Roadmap Short-term goals focus on improving the efficiency of peer-to-peer traffic routing, by incorporating all of the following constraints: 1. Does the potential "giver" peer have chunks the "taker" peer is requesting? 2. Are the peers in the same prefix? (at least the same /16, if not the same /24) 3. Are the peers firewalled? (the server could do a connect test as soon as a client registers their listen port) 4. What is the trust between peers? (the "random" connecting of untrusted peers could be replaced by something that operates on the above two bits of data) 5. Does the "giver" have enough bandwidth? (modeled over time) 6. Are total inbound and outbound links minimized? (to improve TCP congestion) Long-term goals include a move to UDP to reduce protocol latency and overhead as well as encrypting all traffic to ensure privacy and security of the data being transmitted.
This feature is coming soon. Sit tight!