LibTorrent 0.11.0 review
DownloadLibTorrent is a BitTorrent library written in C++ for Unix
|
|
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)
Requirements:
libsigc++ 2.0
What's New in This Release:
Support for protocol encryption and HTTP proxying was added.
LibTorrent 0.11.0 search tags