1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
Apt-P2P: a peer-to-peer proxy for apt downloads
### Goal
Similar to DebTorrent[1], Apt-P2P will act as a proxy between apt
requests and a debian repository server, downloading any requested
files from peers (if possible), but falling back to a direct HTTP
download. Unlike DebTorrent, Apt-P2P will be simple, efficient, and
fast.
[1]: http://debtorrent.alioth.debian.org/
### Features
* Downloads from peers, increasing the available bandwidth to the
user
* Reduces the bandwidth requirements needed to setup a repository
of packages
* Seamlessly integrates with the current APT tool
* Automatically falls back to downloading from an HTTP mirror when
peers are not available
* Builds on other already existing tools where possible
* Fast and requires limited CPU and memory
* Will try to download any file it can find a hash for from peers
(including Packages.bz2, Sources.gz, ...)
This software is open-source and is released at no charge under the
terms of the GPL v2 license[2].
[2]: http://www.opensource.org/licenses/gpl-license.php
### Requirements
To run the full program (e.g. to actually download something):
* Python 2.4 or higher
* Twisted[3] 2.4 or higher
- including Twisted Web2[4] 0.2 or higher
* python-apt[5] 0.6.20 or higher
* An APT-based package management system (such as Debian distributions
have)
If you just want to run the DHT part of the program (e.g. to provide a
bootstrap node), then you only need:
* Python 2.4 or higher
* Twisted[3] 2.4 or higher
[3]: http://twistedmatrix.com/trac/
[4]: http://twistedmatrix.com/trac/wiki/TwistedWeb2
[5]: http://packages.debian.org/unstable/python/python-apt
### Development Status
This project is still undergoing massive code and protocol changes
and hasn't yet seen a release. The code has worked, and is
occasionally working, and will definitely be working soon in the
future.
### Installing
There are detailed instructions on the web site[6] showing how to
install the Apt-P2P program. If you have any trouble using the
program, you can email me[7], or come and find me in the
DebTorrent IRC channel (#debtorrent on OFTC[8]). If you think
you've found a bug in the program, please let me know.
[6]: http://www.camrdale.org/apt-p2p.html
[7]: mailto:camrdale@gmail.com
[8]: http://irc.oftc.net
### The Code
The latest code for the project is currently hosted in a Git
repository[9]. It is publicly readable, and there are instructions
there for downloading the code. It is originally based on the
khashmir[10] implementation of the kademlia DHT[11]. All of the
networking is handled by the Twisted and Twisted Web2
libraries. Dealing with apt's repository files is handled by
python-apt, the code for which is based on that of the
apt-proxy[12] program.
[9]: http://git.camrdale.org/?p=apt-p2p.git;a=summary
[10]: http://khashmir.sourceforge.net/
[11]: http://en.wikipedia.org/wiki/Kademlia
[12]: http://apt-proxy.sourceforge.net/
|