[ANN] Release of etorrent v1.2.0

Jesper Louis Andersen jesper.louis.andersen@REDACTED
Sat Dec 11 23:17:32 CET 2010


Hi all,

I am happy to announce the release of Etorrent version 1.2.0 to the
world. For those who do not know the project, here is an erlang term
describing it:

[{name, "Etorrent"},
 {version, "v1.2.0"},
 {maintainer, "Jesper Louis Andersen <jesper.louis.andersen@REDACTED>"},
 {synopsis,
  "Etorrent is a bittorrent client implementation in Erlang"
  "focusing on fault-tolerance"},
 {homepage, "http://github.com/jlouis/etorrent"},
 {build_system, rebar},
 {license, bsd2, "COPYING"},
 {stability, stable},
 {tested, [otp_r14b, otp_r14b01, otp_r13b04]},
 {repository,
   [{release,
     {etorrent, ".*", {git, "git://github.com/jlouis/etorrent.git", "v1.2.0"}}},
    {development,
     {etorrent, ".*", {git, "git://github.com/jlouis/etorrent.git",
"master"}}}]}
].

For INSTALLATION instructions, read the README.md file provided with
the repository (it is also on the homepage mentioned in the Erlang
term above).

This release welcomes an additional developer, Magnus Klaar, who has
written a new IO backend and has provided Etorrent with a working
Distributed Hash Table implementation. In addition, Magnus has sparked
testing in Etorrent. We now test many more functions than we did
earlier. We do this by a combination of EUnit and Erlang Quickcheck
mini (thanks, Quviq).

In addition to Magnus work, we now support more BitTorrent Protocol
Extensions (BEPs) and our UI code has been improved so we are better
at serving information to the user. Finally, we have replaced SASL
with riak_err (from Basho tech.) to battle problems with SASL eating
up all memory on errors. Also from Basho, we have adapted rebar as a
build system. As a result, we now have even better configuration file
support.

NEWS follows:

Version 1.2.0:

This version sees a number of new highlights:

 Highlights:
   * (Magnus Klaar) A complete DHT implementation. This is outstanding
     work. Note that it should be disabled if you use private
     trackers. We don't heed the private-flag yet (BEP-27)
   * (Magnus Klaar) A completely new disk IO layer which is more parallel
     than the old one. Needless to say, it is much faster.
   * Further work via rebars release handler now lets us build proper releases,
     for production and/or development (See the README.md file for
     instructions).
   * Support for BEP-15: Udp tracker protocol
   * Support for BEP-12: Multitracker protocol
   * Numerous improvement to the webUI.
   * Etorrent now persists the amount of upload and download over sessions.
     This fixes correct ratios even across stops/starts of etorrent.
   * Use the riak_err error handler. This plugs a bug where death of many
     processes would make SASL use too much memory.

 Fixes:
   * Remove mnesia from the code base. The new system is running entirely on
     ETS.
   * Performance improvements in hot parts of the code.
   * Begin adding tests to the code, EUnit and Erlang QuickCheck mini.
   * Add profiling via eprof as a tunable knob.
   * Fix an outstanding bug in the choker code. Etorrent is now much better
     at giving back.
   * Fix a race condition on the gproc table.
   * Improve supervisor tree shutdown
   * Change the bcoding module to be less defensive and more erlang-like
   * Change from uwiger/gproc to esl/gproc.
   * Numerous fixes to robustness regarding slow disks.


Version 1.1.2:

Build system restructuring,

  * This version adds support for a new build system. The README has
    been updated with the information about how to build the software
    now. Compared to earlier, we can now build a release which is a
    stand-alone version of Erlang/OTP and etorrent bundled up nicely.
  * Locations of log files has been vastly improved.
  * Magnus Klaars work on DHT has been included. It is not prime-time
    ready yet, but it is a start.

Version 1.1.1:

Small quick bugfix release,

  * Include etorrent.erl, which was not tracked by the repository.


Enjoy!

-- 
J.


More information about the erlang-questions mailing list