1.1.0 release
- improve robustness and performance of uTP PMTU discovery
- fix duplicate ACK issue in uTP
- support filtering which parts of session state are loaded by load_state()
- deprecate support for adding torrents by HTTP URL
- allow specifying which tracker to scrape in scrape_tracker
- tracker response alerts from user initiated announces/scrapes are now
posted regardless of alert mask - improve DHT performance when changing external IP (primarily affects
bootstrapping). - add feature to stop torrents immediately after checking files is done
- make all non-auto managed torrents exempt from queuing logic, including
checking torrents. - add option to not proxy tracker connections through proxy
- removed sparse-regions feature
- support using 0 disk threads (to perform disk I/O in network thread)
- removed deprecated handle_alert template
- enable logging build config by default (but alert mask disabled by default)
- deprecated RSS API
- experimental support for BEP 38, "mutable torrents"
- replaced lazy_bdecode with a new bdecoder that's a lot more efficient
- deprecate time functions, expose typedefs of boost::chrono in the
libtorrent namespace instead - deprecate file_base feature in file_storage/torrent_info
- improve piece picker support for reverse picking (used for snubbed peers)
to not cause priority inversion for regular peers - improve piece picker to better support torrents with very large pieces
and web seeds. (request large contiguous ranges, but not necessarily a
whole piece). - deprecated session_status and session::status() in favor of performance
counters. - improve support for HTTP where one direction of the socket is shut down.
- remove internal fields from web_seed_entry
- separate crypto library configuration and whether to support
bittorrent protocol encryption - simplify bittorrent protocol encryption by just using internal RC4
implementation. - optimize copying torrent_info and file_storage objects
- cancel non-critical DNS lookups when shutting down, to cut down on
shutdown delay. - greatly simplify the debug logging infrastructure. logs are now delivered
as alerts, and log level is controlled by the alert mask. - removed auto_expand_choker. use rate_based_choker instead
- optimize UDP tracker packet handling
- support SSL over uTP connections
- support web seeds that resolve to multiple IPs
- added auto-sequential feature. download well-seeded torrents in-order
- removed built-in GeoIP support (this functionality is orthogonal to
libtorrent) - deprecate proxy settings in favor of regular settings
- deprecate separate settings for peer protocol encryption
- support specifying listen interfaces and outgoing interfaces as device
names (eth0, en2, tun0 etc.) - support for using purgrable memory as disk cache on Mac OS.
- be more aggressive in corking sockets, to coalesce messages into larger
packets. - pre-emptively unchoke peers to save one round-trip at connection start-up.
- add session constructor overload that takes a settings_pack
- torrent_info is no longer an intrusive_ptr type. It is held by shared_ptr.
This is a non-backwards compatible change - move listen interface and port to the settings
- move use_interfaces() to be a setting
- extend storage interface to allow deferred flushing and flush the part-file
metadata periodically - make statistics propagate instantly rather than on the second tick
- support for partfiles, where partial pieces belonging to skipped files are
put - support using multiple threads for socket operations (especially useful for
high performance SSL connections) - allow setting rate limits for arbitrary peer groups. Generalizes
per-torrent rate limits, and local peer limits - improved disk cache complexity O(1) instead of O(log(n))
- add feature to allow storing disk cache blocks in an mmapped file
(presumably on an SSD) - optimize peer connection distribution logic across torrents to scale
better with many torrents - replaced std::map with boost::unordered_map for torrent list, to scale
better with many torrents - optimized piece picker
- optimized disk cache
- optimized .torrent file parsing
- optimized initialization of storage when adding a torrent
- added support for adding torrents asynchronously (for improved startup
performance) - added support for asynchronous disk I/O
- almost completely changed the storage interface (for custom storage)
- added support for hashing pieces in multiple threads
- fix division by zero in super-seeding logic