github arvidn/libtorrent libtorrent_1_2_0
libtorrent-1.2.0

latest releases: v2.0.10, v2.0.9, v1.2.19...
5 years ago

1.2 is a major upgrade from the 1.1.x series. It is not ABI compatible with 1.1.x.

Most prominent changes are:

  • requires boost >= 1.58 to build
  • require C++11 to build
  • improved support for listening on multiple sockets and interfaces
  • announce_entry no longer represents a single tracker IP, but has a list of endpoints announced to. This is to support multi-homed clients.
  • introduce introduce distinct types for peer_class_t, piece_index_t and file_index_t. They implicitly convert to raw integers, but the conversion is deprecated.
  • alert types are no longer copyable and ownership is never transferred to clients
  • deprecated alert::progress_notification alert category, split into finer grained categories
  • deprecate identify_client() and fingerprint type
  • deprecated public to_hex() and from_hex() functions
  • remove deprecate session_settings API (use settings_pack instead)
  • transitioned exception types to system_error
  • move files one-by-one when moving storage for a torrent
  • removed RSS support
  • removed feature to resolve country for peers

More on changes to API that are not backwards compatible can be found here.

Rest of the changelog:

  • tweak heuristic of how to interpret url seeds in multi-file torrents
  • support &ipv4= tracker argument for private torrents
  • renamed debug_notification to connect_notification
  • when updating listen sockets, only post alerts for new ones
  • deprecate anonymous_mode_alert
  • deprecated force_proxy setting (when set, the proxy is always used)
  • add support for Port Control Protocol (PCP)
  • deliver notification of alerts being dropped via alerts_dropped_alert
  • update plugin interface functions for improved type-safety
  • implemented support magnet URI extension, select specific file indices for download, BEP53
  • make tracker keys multi-homed. remove set_key() function on session.
  • add flags()/set_flags()/unset_flags() to torrent_handle, deprecate individual functions
  • added alert for block being sent to the send buffer
  • drop support for windows compilers without std::wstring
  • implemented support for DHT infohash indexing, BEP51
  • removed deprecated support for file_base in file_storage
  • added support for running separate DHT nodes on each network interface
  • added support for establishing UTP connections on any network interface
  • added support for sending tracker announces on every network interface
  • introduce "lt" namespace alias
  • need_save_resume_data() will no longer return true every 15 minutes
  • make the file_status interface explicitly public types
  • added resolver_cache_timeout setting for internal host name resolver
  • make parse_magnet_uri take a string_view instead of std::string
  • deprecate add_torrent_params::url field. use parse_magnet_uri instead
  • optimize download queue management
  • deprecated (undocumented) file:// urls
  • add limit for number of web seed connections
  • added support for retrieval of DHT live nodes
  • complete UNC path support
  • add packets pool allocator
  • remove disk buffer pool allocator
  • fix last_upload and last_download overflow after 9 hours in past
  • python binding add more add_torrent_params fields and an invalid key check
  • fix crash caused by empty bitfield
  • removed disk-access-log build configuration
  • removed mmap_cache feature
  • strengthened type safety in handling of piece and file indices
  • make sequence number for mutable DHT items backed by std::int64_t
  • tweaked storage_interface to have stronger type safety
  • deprecate relative times in torrent_status, replaced by std::chrono::time_point
  • refactor in alert types to use more const fields and more clear API
  • changed session_stats_alert counters type to signed (std::int64_t)
  • remove torrent eviction/ghost torrent feature
  • include target in DHT lookups, when queried from the session
  • improve support for HTTP redirects for web seeds
  • use string_view in entry interface
  • deprecate "send_stats" property on trackers (since lt_tracker extension has been removed)
  • improve file layout optimization when creating torrents with padfiles
  • remove remote_dl_rate feature
  • source code migration from boost::shared_ptr to std::shared_ptr
  • storage_interface API changed to use span and references
  • changes in public API to work with std::shared_ptr<torrent_info>
  • extensions API changed to use span and std::shared_ptr
  • plugin API changed to handle DHT requests using string_view
  • removed support for lt_trackers and metadata_transfer extensions (pre-dating ut_metadata)
  • support windows' CryptoAPI for SHA-1
  • separated ssl and crypto options in build
  • remove lazy-bitfield feature
  • simplified suggest-read-cache feature to not depend on disk threads
  • removed option to disable contiguous receive buffers
  • separated address and port fields in listen alerts
  • added support for parsing new x.pe parameter from BEP 9
  • peer_blocked_alert now derives from peer_alert
  • made alerts move-only
  • added support for BEP 32, "IPv6 extension for DHT"
  • overhauled listen socket and UDP socket handling, improving multi-home support and bind-to-device
  • resume data is now communicated via add_torrent_params objects
  • added new read_resume_data()/write_resume_data functions to write bencoded, backwards compatible resume files
  • removed deprecated fields from add_torrent_params
  • deprecate "resume_data" field in add_torrent_params
  • improved support for bind-to-device
  • deprecated ssl_listen, SSL sockets are specified in listen_interfaces now
  • resume data no longer has timestamps of files

Don't miss a new libtorrent release

NewReleases is sending notifications on new releases.