[erlang-questions] Announce: etorrent 0.8

Jesper Louis Andersen <>
Sat Jun 28 15:44:13 CEST 2008

etorrent is a bittorrent client written entirely in Erlang.

Version 0.8 is a technology preview. Don't expect it to be
completely robust yet: I have not checked that it always survive
random process kills. Here is a list of what works though:

* Full compliance with the original bittorrent specification (BEP-03).

* Understands the bittorrent number allocations (BEP-04) but does not
  yet use it for anything.

* Understands compact tracker returns (BEP-23).

And all that in 5300 lines of code (where 3700 is the real code, rest
is documentation).

v0.9 will contain a real installation procedure. For now it is a hack.
Overall it the code is
very succinct and I had a lot of fun improving the code to this point.
The Erlang VM copes
really well with this: despite some really hairy memory-abuse
weaknesses in the code base,
I can run some 20 torrents in 350Mb of memory and 2-3% CPU if I enable
'+Ktrue +A 128' to
the erl(1) call, no HiPE. It will be easy to lower the memory usage,
but it has been planned for
a later release. We can also shave the CPU usage a bit more, as there
has been no profiling

The source code is available through Google Code (2-Clause BSD license):


If you want to try it out, start by looking at the README file which
contains the description
of how to run the application without using the installation procedure
(Which is what I am
currently using for debugging it). To check that something is really
going on, check the internal
mnesia tables via 'tv:start().' as I have not had time to write a nice
set of functions able to print
out status on the console (If someone wants to add it, mail me, it is
pretty easy).

and if you want to hack, then [http://repo.or.cz/w/etorrent.git]
contains links to the git repository.

I'm currently the sole writer and maintainer, but hackers, comments,
issues and patches are welcome!
I don't expect to be able to find all bugs myself :), hence this tech.
preview release.
Coordinate with me if you want to do something bigger.


More information about the erlang-questions mailing list