ANN: etorrent v1.0.0
Jesper Louis Andersen
Tue Jul 6 00:01:55 CEST 2010
(Apologies if there is another list taking software release announcements)
I am happy to announce etorrent v1.0.0 to the masses. Etorrent is a
written in Erlang, relying on concurrency to get the job done.
Etorrent is a fully functional bittorrent client for the base
protocol, although it needs some work to support all extensions to the
protocol. This is the first release in about 2 years on the project.
Overall this version of the client is the first one which is not
simply a tech-preview. It can actually be used as a client on a daily
basis if one wants.
Code and downloads are available from the Github page:
Building requires rebar, although it should be fairly easy to call
emake by yourself if wanted.
(Tuncer Ayaz): Estimate the ETA of torrents. Guess at when they are done.
When processes are stopping, correctly clean up ETS tables. The solution we
use is to place monitors on key processes. Bookkeeping processes then act on
'DOWN' messages and remove ETS entries again.
All module-exported functions now have edoc tags and -spec entries.
We now use rebar for building the application. To come is a standalone-node
provisioning. For now the 'run' makefile target is to be used. Also adapt the
file layout mandated by rebar.
Adaptive active/passive sockets. When a peer is slow, we manage the socket
ourselves. This gives fine granularity of its speed. When the peer socket
jumps above a high watermark, it is made active, pushing the overhead to the
C-layer of the VM.
Use an LRU-replacement scheme on open files. Limit the number of open files
to 128 at once. This enables torrents with more than 1024 - OPEN_SOCKETS
files to be downloaded.
Add a WebUI. The inets server provides a simple RPC-service for a primarily
the moment, but it should be easy to extend with new functionality.
Numerous additional code cleanups here and there. It should be even easier to
read and understand now.
Make GitHub the official repository place:
Use http://github.com/jlouis/etorrent/issues for issues. Issues can be voted
on, so if one prefers one thing over the other, don't hesitate to hint me :)
More information about the erlang-questions