LibTorrent 0.11.0 review

by on

LibTorrent is a BitTorrent library written in C++ for Unix

License: GPL (GNU General Public License)
File size: 0K
Developer: Rakshasa
0 stars award from

LibTorrent is a BitTorrent library written in C++ for Unix. LibTorrent library is designed to avoid the redundant buffers and data copying that most (all?) other BitTorrent implementations suffer from.

The library is single-threaded and the client handles the select loop. An interactive ncurses client is included as an example.

Here are some key features of "LibTorrent":
The client has full control over the polling of sockets.
Sigc++ signals makes i easy for the client to react to events.
Fast resume which checks the file modification time.

Direct reading and writing from network to mmap'ed files:

Avoids duplication of data where both the application and the kernel has a copy of the file chunk.
Unused chunks get thrown out or written to disk instead of the swap.
Kernel handles caching of the file.

File hash check:

Uses the same thread.
Client can control the rate. (Will be improved)
Non-blocking and preload to memory with the mincore and madvise system calls.

File handler:

Fine-grained use of file read/write permissions, allows seeding of read-only files.
Allows torrents with unlimited number of files.
Opens closed files when mapping chunks to memory, with graceful error handling.
Support for files larger than 2 GB.
Different download priorities for files in the torrent.

Multi-tracker support.
No dependency on any specific HTTP library, the client implements a wrapper class.
Dynamic request pipe size.
Upload and download throttle.
And much more i haven't bothered mentioning. (nor implementing)

libsigc++ 2.0

What's New in This Release:
Support for protocol encryption and HTTP proxying was added.

LibTorrent 0.11.0 keywords