Skip to content

Releases: arvidn/libtorrent

v2.1.0-rc1

22 Apr 05:30

Choose a tag to compare

v2.1.0-rc1 Pre-release
Pre-release

2.1.0 Release Candidate 1

* optimize torrent_handle::torrent_file()
* add option to not validate v1 hashes for hybrid torrents
* add post_file_status() to query them asynchronously
* add post_file_priorities() to query them asynchronously
* fix local service discovery not being correctly staggered
* add an experimental multi-threaded, pread()-based, disk I/O backend (pread_disk_io)
* make the save path for part files configurable
* retry failed SAM connection (for i2p)
* deprecated remap_files(), and prevent it from breaking v2 torrents
* fix peer_info holding an i2p destination
* implement i2p_pex, peer exchange support for i2p torrents
* deprecate torrent_alert::torrent_name()
* requires OpenSSL minimum version 1.1.0 with SNI support
* try harder to bind TCP and UDP sockets to the same port
* made disk_interface's status_t type a flags type
* optimize resume data format to use less space
* add a simpler overload to bencode() returning a vector<char>
* introduced a new API for creating torrents, enabling file_storage optimizations
* default build to not include functions deprecated in libtorrent 1.1 and earlier
* add comment, created_by and creation_date to add_torrent_params
* move session_flags to session_params
* the entry class is now a standard variant type
* use std::string_view instead of boost counterpart
* libtorrent now requires C++17 to build
* added support for WebTorrent

Full Changelog: v2.0.12...v2.1.0-rc1

v2.0.12

13 Mar 22:23

Choose a tag to compare

2.0.12 released

  • fix issue where file priorities could be cleared by force recheck
  • fix issue in XML parser
  • when building against OpenSSL, require at least version 1.1.1
  • add setting to set no-copy-on-write flag on new files
  • add performance counters to file pool
  • add high_priority flag to torrent_handle::force_reannounce()
  • update default DSCP value and update docs
  • fix python binding for set_notify_function()
  • fix error handling in mmap disk I/O when hashing files
  • improve copy_file_range() fallback
  • don't overwrite existing files when renaming
  • add option to send host header in HTTP proxy CONNECT command
  • cache DNS failures for a shorter time
  • file_renamed_alert is always posted, regardless of alert mask
  • add feature to request resume data synchronously
  • don't leak file descriptors to child processes (O_CLOEXEC)
  • optimize the utp resend
  • optimize tracker announcements
  • fix handling of invalid filenames
  • add support for I2CP inbound.lengthVariance and outbound.lengthVariance tunnel settings
  • add natpmp_gateway setting to manually set the default gateway for the NAT-PMP protocol

What's Changed

Read more

libtorrent 2.0.11

28 Jan 12:15

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.0.10...v2.0.11

libtorrent 1.2.20

28 Jan 12:11
2e537ee

Choose a tag to compare

What's Changed

  • backport cibuildwheel fix of not running tests in win32 by @arvidn in #7442
  • back-port posix timestamps by @stalkerok in #7446
  • back-port updating test certs by @arvidn in #7467
  • Allow to compile RC_1_2 branch in C++20 mode by @Chocobo1 in #7491
  • FIX(peer_list): clear the m_candidate_cache when clear peer_list, and… by @Lwxiang in #7460
  • avoid implicit this capture by @arvidn in #7502
  • rely on RVO in C++20 by @arvidn in #7504
  • (Backport) Treat CGNAT address range as local IPs by @Chocobo1 in #7531
  • Allow to change save path without moving any files by @glassez in #7552
  • bump python version on github actions to 3.12 by @arvidn in #7583
  • Migrate away from deprecated functions in C++23 by @Chocobo1 in #7582
  • Clean up MSVC compiler flags by @Chocobo1 in #7615
  • fix issue when closing a uTP connection RC_1_2 backport by @arvidn in #7718
  • fix piece size check when loading torrents by @arvidn in #7740
  • use stricter rules for what filenames are valid on Android by @arvidn in #7832
  • update test certs by @arvidn in #7833
  • validate add_torrent_params::save_path at run-time by @arvidn in #7825

New Contributors

Full Changelog: v1.2.19...v1.2.20

libtorrent-2.0.10

19 Feb 12:18

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.0.9...v2.0.10

libtorrent-2.0.9

22 May 06:41

Choose a tag to compare

Changes since previous release:

  • fix issue with web seed connections when they close and re-open
  • fallocate() not supported is not a fatal error
  • fix proxying of IPv6 connections via IPv4 proxy
  • treat CGNAT address range as local IPs
  • add stricter checking of piece layers when loading torrents
  • add stricter checking of v1 and v2 hashes being consistent
  • cache failed DNS lookups as well as successful ones
  • add an i2p torrent state to control interactions with clear swarms
  • fix i2p SAM protocol parsing of quoted messages
  • expose i2p peer destination in peer_info
  • fix i2p tracker announces
  • fix issue with read_piece() stopping torrent on pieces not yet downloaded
  • improve handling of allow_i2p_mixed setting to work for magnet links
  • fix web seed request for renamed single-file torrents
  • fix issue where web seeds could disappear from resume data
  • extend save_resume with additional conditional flags
  • fix issue with retrying trackers in tiers > 0
  • fix last_upload and last_download resume data fields to use posix time
  • improve error messages for no_connect_privileged_ports, by untangle it from the port filter
  • fix I2P issue introduced in 2.0.0
  • add async tracker status query, post_trackers()
  • add async torrent status query, post_status()
  • support loading version 2 of resume data format
  • fix issue with odd piece sizes
  • add async piece availability query, post_piece_availability()
  • add async download queue query, post_download_queue()
  • add async file_progress query, post_file_progress()
  • add async peer_info query, post_peer_info()

libtorrent-1.2.19

22 May 06:40

Choose a tag to compare

Changes since previous version:

  • back-port load_torrent_*() functions
  • fix issue with odd piece sizes

libtorrent-2.0.8

23 Oct 11:30
64817e0

Choose a tag to compare

changes since previous 2.0.x release:

  • fix uTP streams timing out instead of closing cleanly
  • add write_torrent_file_buf() overload for generating .torrent files
  • add create_torrent::generate_buf() function to generate into a buffer
  • fix copy_file when the file ends with a sparse region
  • uTP performance, fix packet loss when sending is stalled
  • fix trackers being stuck after session pause/resume
  • fix bug in hash_picker with empty files
  • uTP performance, prevent premature timeouts/resends
  • add option to not memory map files below a certain size
  • settings_pack now returns default values when queried for missing settings
  • fix copy_file fall-back when SEEK_HOL/SEEK_DATA is not supported
  • improve error reporting from file copy and move
  • tweak pad file placement to match reference implementation (tail-padding)
  • uTP performance, more lenient nagle's algorithm to always allow one outstanding undersized packet
  • uTP performance, piggy-back held back undersized packet with ACKs
  • uTP performance, don't send redundant deferred ACKs
  • support incoming SOCKS5 packets with hostnames as source address, for UDP trackers
  • ignore duplicate network interface change notifications on linux
  • fix total_want/want accounting when forcing a recheck
  • fix merging metadata with magnet links added on top of existing torrents
  • add torrent_flag to default all file priorities to dont_download
  • fix &so= feature in magnet links
  • improve compatibility of SOCKS5 UDP ASSOCIATE
  • fix madvise range for flushing cache in mmap_storage
  • open files with no_cache set in O_SYNC mode

libtorrent-1.2.18

23 Oct 11:24

Choose a tag to compare

Changes since previous 1.2.x release.

  • fix issue where stop-when-ready would not close files
  • uTP performance, fix packet loss when sending is stalled
  • uTP performance, prevent premature timeouts/resends
  • uTP performance, more lenient nagle's algorithm to always allow one outstanding undersized packet
  • uTP performance, piggy-back held back undersized packet with ACKs
  • uTP performance, don't send redundant deferred ACKs
  • fix wanted_done/done accounting when force-rechecking
  • expose userdata via torrent_handle (back-port from 2.0)
  • fix renaming of filenames that are too long for the filesystem
  • made UPnP and LSD code avoid using select_reactor (to work around an issue on windows in boost.asio < 1.80)

libtorrent-2.0.7

17 Jul 17:20

Choose a tag to compare

Changes since last release:

  • fix issue in use of copy_file_range() on linux
  • avoid open-file race in the file_view_pool
  • fix issue where stop-when-ready would not close files
  • fix issue with duplicate hybrid torrent via separate v1 and v2 magnet links
  • added new function to load torrent files, load_torrent_*()
  • support sync_file_range() on linux
  • fix issue in write_torrent_file() when file size is exactly piece size
  • fix file_num_blocks() and file_num_pieces() for empty files
  • add new overload to make_magnet_uri()
  • add missing protocol version to tracker_reply_alert and tracker_error_alert
  • fix privilege issue with SetFileValidData()
  • add asynchronous overload of torrent_handle::add_piece()
  • default to a single hashing thread, for full checks
  • Fix bug when checking files and the first piece is invalid

As well as changes merged in from the 1.2.x branch:

  • fixed tracker connections spinning when hostname lookups stall
  • fixed error in pkg-config file generation in Jamfile
  • improve backwards compatibility with loading magnet link resume files
  • fix bind-to-device for tracker announces and UPnP
  • rename peer_tos setting to peer_dscp
  • fix bdecode support for large strings (>= 100 MB)