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
bittorrent client
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
  Javascript-enabled web-frontend. It can only display the basic overview at
  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 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 mailing list