Download Latest Version frostwire-6.14.0.amd64.tar.gz (95.6 MB)
Email in envelope

Get an email when there's a new version of FrostWire

Home / frostwire-android-3.0.6-build-760
Name Modified Size InfoDownloads / Week
Parent folder
frostwire-android-release-3.0.6-b760-plus.apk 2025-10-16 123.1 MB
frostwire-android-3.0.6-build-760 source code.tar.gz 2025-10-16 33.9 MB
frostwire-android-3.0.6-build-760 source code.zip 2025-10-16 35.8 MB
README.md 2025-10-16 29.0 kB
Totals: 4 Items   192.8 MB 0

What's Changed

Full Changelog: https://github.com/frostwire/frostwire/compare/frostwire-android-3.0.5-build-759...frostwire-android-3.0.6-build-760

image

FrostWire 3.0.6 (Build 760) — Comprehensive Change Report

Release Date: October 12, 2025
Based on: FrostWire 2.x → 3.x transition (Android)


🧱 Architectural & Core Upgrades

Migration to jlibtorrent 2.0.12.5

  • Full adoption of BitTorrent v2 protocol, including hybrid torrent support and BEP52 compliance.
  • Hundreds of performance and stability fixes from upstream libtorrent RC_2_0 branch.
  • C++20 standardization: all native builds now compiled with C++20 (C++2a on Windows/MinGW).
  • Boost 1.88.0, OpenSSL 3.5.2, and SWIG 4.3.1 upgrades for improved compatibility and security.
  • Android NDK r28c (16KB page support) → future-proofed for Android 14+ devices.
  • JDK 17 build target with full JAVA_17 compatibility.
  • Mavenized jlibtorrent packages (com.frostwire:jlibtorrent) for easier integration.

Key New Libtorrent (lt) Features

  • Added async APIs:
    post_trackers(), post_status(), post_peer_info(), post_piece_availability(), post_file_progress(), etc.
  • Enhanced torrent_handle with new overloads (get_resume_data(flags), add_piece(async)).
  • New runtime checks for add_torrent_params::save_path validation.
  • Major uTP performance improvements: reduced redundant ACKs, resends, and improved congestion control.
  • Improved I/O subsystem: switched to memory-mapped files with better sparse region handling.
  • Added stricter BEP compliance (filename validation, piece layers, IPv6 priority, I2P improvements).
  • Async I/O improvements → better throughput and less thread contention.

⚙️ FrostWire App-Level Enhancements

New Features

  • TorrentCSV and Knaben integrated as new torrent search performers.
  • Incoming Port Range configuration (Settings > Torrent Settings > Port Range).
  • Automatic seeding of finished HTTP downloads, replicating desktop seeding behavior.
  • Ad-free experience: all 3rd-party ads and trackers removed.
    Only FrostWire support requests, VPN suggestions, and promotional downloads remain.
  • Updated yt_dlp binary to 2025.09.26 for YouTube & media downloading.
  • Distraction-free search mode enabled by default for cleaner UI.

Performance Optimizations

  • Search sorting improved from O(n² log n)O(n log n) complexity.
  • Connection pooling unlocked via OkHttpClient reuse.
  • Reduced GC pressure and CPU load in download and search pipelines.
  • Fuzzy matching (PerformersHelper): optimized Levenshtein computation, 8.8× faster sanitization.
  • I/O operations optimized with buffered streams — up to 96% CPU savings on syscalls.
  • Regex eliminations in URL and string sanitizers for major allocation reductions.
  • Threading refactors: removal of Thread.yield() and new Runnable task model in SearchManager.
  • Logger, ThreadPool, and RecyclerView hot paths heavily optimized.
  • Startup time reduced via deferred heavy initialization.
  • Memory safety improvements with Bitmap.recycle() and inSampleSize scaling to prevent OOMs.

UI & UX

  • Picasso 3.0.0-alpha06 upgrade with custom ImageLoader refactor.
  • Crash and ANR resilience: multiple handler and dispatcher fixes in MusicPlaybackService.
  • ForegroundServiceStartNotAllowedException handling for Android 14+.
  • New concurrent-safe URL resolver (UrlUtils.getFastestMirrorDomain).
  • Thread-safe WorkManager configuration to prevent JobScheduler alarm limit exceptions.
  • Optimized music metadata cleanup and playlist handling in background.

🧠 Code Quality & Refactoring

  • SearchManager rewritten to use modern Runnable task submission.
  • Hashtable throttling replaced with lock-free ConcurrentHashMap.
  • Removed deprecated APIs (setDrawingCacheEnabled, replaced with Canvas API).
  • Consistent GPL v3.0 license headers across all source files.
  • Modularized SWIG interface files for maintainability.
  • Added prepare-macos.sh and improved build scripts (run-swig.sh, build-only, swig-only options).
  • Enhanced exception handling, typed bitfields, and Boost error code wrapping in SWIG bindings.

🧩 Stability & Crash Fixes

  • Fixed multiple ANRs in:
  • MusicPlaybackService.setDataSource
  • MusicPlaybackService.playFDs
  • Large result sorting
  • Picasso background handlers
  • Fixed NullPointerExceptions in ImageFetcher and HandlerDispatcher.
  • Fixed ClassCastException in SearchResultListAdapter.
  • Fixed ConcurrentModificationException in Ssl$FWHostnameVerifier.
  • Fixed ForegroundServiceStartNotAllowedException for Android 14+.
  • Fixed thread leaks and race conditions in mirror resolution and image loading.
  • Fixed context leaks and improved lifecycle handling in broadcast receivers.
  • Fixed OOM risks via aggressive bitmap cleanup and sample downscaling.

🧰 Library & Dependency Upgrades

Library Version
org.jetbrains:annotations 26.0.2-1
androidx.appcompat:appcompat 1.7.1
androidx.browser:browser 1.9.0
androidx.core:core 1.17.0
androidx.exifinterface:exifinterface 1.4.1
androidx.lifecycle:lifecycle-viewmodel-ktx 2.9.4
androidx.work:work-runtime-ktx 2.10.4
com.google.android.material:material 1.13.0
com.google.code.gson:gson 2.13.2
com.google.re2j:re2j 1.8
com.squareup.okhttp3:okhttp 5.1.0
io.coil-kt.coil3:coil 3.0.4
iio.coil-kt.coil3:coil-network-okhttp 3.0.4
com.chaquo.python:gradle 16.1.0
org.codehaus.groovy:groovy-all 3.0.25
com.google.gms:google-services 4.4.3
com.google.firebase:firebase-crashlytics-gradle 3.0.6
com.google.firebase:firebase-bom 34.3.0

🔧 Libtorrent 2.0 Highlights (Technical Breakdown)

Major Improvements

  • Disk I/O overhaul → memory-mapped files, reduced syscall overhead.
  • uTP protocol refinements for stable low-latency streaming.
  • Improved BEP compliance (BEP40, BEP52, IPv6).
  • Added BitTorrent v2 torrent creation, validation, and mixed v1/v2 swarm handling.
  • Resilient resume data loading/saving with new v2 formats.
  • SOCKS5, I2P, DHT, proxy layers fixed and modernized.
  • Improved DNS caching and error handling.
  • Thread-safe piece picker, file_progress, and hash_picker fixes.
  • Removed deprecated APIs: lazy_entry, save_state(), load_state(), bittyrant.
  • Dropped iconv dependency, lighter build footprint.

I2P & Privacy

  • Added I2P inbound/outbound length variance settings.
  • Fixed I2P announce parsing and protocol quoting.
  • Added mixed swarm control (I2P + clearnet).

🧾 Summary

FrostWire 3 marks a major modernization leap — moving to: - BitTorrent v2 ecosystem, - 16KB page-aware Android binaries, - Ad-free user experience, - Fully optimized search and transfer performance.

This release focuses heavily on speed, stability, and code hygiene: - Native layer rewritten in C++20, - App layer streamlined for Android 14+, - Improved resource handling, - Significant performance wins in networking, searching, and I/O.


FrostWire 3.0.5 Build 759
The most stable, efficient, and privacy-respecting FrostWire release to date.

FrostWire 3.0.6 build 760 OCT/16/2025

- new:Powered by jlibtorrent 2.0.12.5 with bittorrent v2 protocol support with hundreds of bug fixes and performance improvements
 - new:Knaben search performer, a new torrent search source
 - new:TorrentCSV search performer, a new torrent search source
 - new:Settings > Torrent Settings > Incoming Connection Port Range selection
 - new:Seed finished HTTP transfers if seeding is enabled (automatically creates torrent of finished download like on desktop)
 - new:No more third party ads or advertising tracking of any kind. Only frostwire support requests, vpn suggestions and promotional free downloads.
 - yt_dlp-2025.09.26
 - replaced:Picasso for Coil image loading library
 - removed:Torlock search performer (old site is down, new site is malicious)
 - freeze:ensure MusicUtils.removeFromPlaylist ContentResolver activity is in the background
 - freeze:sorting through too many results could cause an ANR when cleaning up titles
 - freeze:ANR in MusicPlaybackService.setDataSource
 - freeze:ANR in MusicPlaybackService.playFDs
 - fix:logic bug in PerformersHelper.countMatchedTokens(), matched tokens were not counted correctly
 - fix:ForegroundServiceStartNotAllowedException by adding foreground check and error handling
 - fix:Android 14+ ForegroundServiceStartNotAllowedException in MusicPlaybackService
 - fix:Android JobScheduler alarm limit exceeded crashes by configuring WorkManager
 - fix:ClassCastException in SearchResultListAdapter OnLinkClickListener
 - fix:HandlerDispatcher NullPointerException crashes in Picasso image loading (removed on build 760)
 - freeze:in playFDs
 - freeze:in MusicPlaybackService.setDataSource
 - crash:NPE in ImageFetcher.loadCurrentArtwork()
 - improvement:PerformersHelper.sanitize() 8.8x speed gains in title normalization by not using a regex and instead simple string replacements
 - improvement:Optimize stackBlur() with array pooling to reduce allocations
 - maintenance:Avoid possible context leak on EngineBroadcastReceiver
 - maintenance:all license headers are GPL 3.0
 - maintenance:archive.org search fixed
 - maintenance:glotorrents search fixed
 - maintenance:idope search fixed
 - maintenance:magnetdl search fixed
 - maintenance:add BitmapFactory.inSampleSize to prevent OOM crashes
 - maintenance:Add Bitmap.recycle() to prevent native memory leaks
 - maintenance:Replace deprecated setDrawingCacheEnabled() with Canvas API
 - speed-up:Optimize search sorting from O(n² log n) to O(n log n)
 - speed-up:reuse OkHttpClient instances to unlock connection pooling and reduce GC pressure
 - speed-up:Replace global Hashtable throttling with lock-free ConcurrentHashMap in TaskThrottle
 - speed-up:Cache torrent-search date parsers to eliminate per-result SimpleDateFormat allocations
 - speed-up:Use buffered I/O for large transfers in OkHttpClientWrapper.save and ZipUtils.unzip. Up to 96% CPU savings in sys write calls, 30-50% reduction in CPU during I/O operations, search results should come out a lot faster
 - speed-up:Optimize Levenshtein distance allocation footprint in PerformersHelper fuzzy matching
 - speed-up:Optimize hot paths for string sanitizers - eliminate regex compilation overhead in search and scrapes (UrlUtils and StringUtils)
 - speed-up:Optimize hot paths for Logger, ThreadPool, and collection sizing
 - speed-up:Optimize MainApplication startup by deferring heavy initialization
 - speed-up:Optimize RecyclerView onBindViewHolder() hot paths
 - refactor: SearchManager tasks to Runnable and remove Thread.yield() from hot path
 - crash:ConcurrentModificationException in Ssl$FWHostnameVerifier
 - fix:Picasso HandlerDispatcher NullPointerException on network state changes when app is backgrounded by keeping Picasso alive instead of shutting down (removed on build 760)
 - fix:thread leak and data race in UrlUtils.getFastestMirrorDomain
 - Distraction free search now on by default, much better experience
 - org.jetbrains:annotations:26.0.2-1
 - androidx.appcompat:appcompat:1.7.1
 - androidx.browser:browser:1.9.0
 - com.chaquo.python:gradle:16.1.0, now with linked 16KB mode compatible with android compile sdk 36
 - org.codehaus.groovy:groovy-all:3.0.25
 - com.squareup.picasso3:picasso:3.0.0-alpha06 and refactor of ImageLoader to use it (removed on build 760)
 - com.google.gms:google-services:4.4.3
 - com.google.firebase:firebase-crashlytics-gradle:3.0.6
 - androidx.core:core:1.17.0
 - androidx.exifinterface:exifinterface:1.4.1
 - androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.4
 - com.google.android.material:material:1.13.0
 - com.google.code.gson:gson:2.13.2
 - com.google.re2j:re2j:1.8
 - com.squareup.okhttp3:okhttp:5.1.0
 - androidx.work:work-runtime-ktx:2.10.4
 - com.google.firebase:firebase-bom:34.3.0
 - Maintenance:all license headers are consistent with GPL 3.0
 - jlibtorrent:libraries are now compiled with C++20 (ming/windows with C++2a which is the same)
 - jlibtorrent:g++-9 upgraded to g++-11 for linux build
 - jlibtorrent:new Sha256Hash::swig()
 - jlibtorrent:new SessionManager::find(Sha256Hash) and SessionManager::find(TorrentInfo) methods
 - jlibtorrent:built with android NDK r28c with 16K page size support
 - Android 64-bit binaries are compiled to have 16KB max-page-size
 - jlibtorrent:New com.frostwire:jlibtorrent- maven packages for easier integration with gradle/maven
 - jlibtorrent:new torrent_handle::get_resume_data() : add_torrent_params
 - jlibtorrent:new torrent_handle::get_resume_data(resume_data_flags_t flags) : add_torrent_params
 - jlibtorrent:new settings_pack.int_types i2p_inbound_length_variance
 - jlibtorrent:new settings_pack.int_types i2p_outbound_length_variance
 - jlibtorrent:Jar built with JDK 17 - JAVA_17 compatibility
 - jlibtorrentBoost 1.88.0 upgrade
 - jlibtorrent:OpenSSL 3.5.2 upgrade (from 1.1.1t)
 - jlibtorrent:Upgraded SWIG to 4.3.1
 - jlibtorrent:Gradle 9.0.0
 - dev: junit upgraded from 4.13.1 -> 4.13.2
 - lt:add option to send host header in HTTP proxy CONNECT command
 - lt:cache DNS failures for a shorter time
 - lt:file_renamed_alert is always posted, regardless of alert mask
 - lt:add feature to request resume data synchronously
 - lt:don't leak file descriptors to child processes (O_CLOEXEC)
 - lt:optimize the utp resend
 - lt:optimize tracker announcements
 - fix handling of invalid filenames
 - add support for I2CP inbound.lengthVariance and outbound.lengthVariance tunnel settings
 - lt: validate add_torrent_params::save_path at run-time
 - lt: use stricter rules for what filenames are valid on Android
 - lt: fix applying IP filter to DHT traffic (HanabishiRecca)
 - lt: fix race condition when cancelling requests after becoming a seed
 - lt: fix performance bug in the file pool, evicting MRU instead of LRU (HanabishiRecca)
 - lt: fix bug where file_progress could sometimes be reported as >100%
 - jlibtorrent:BDecodeNode: hasList, hasDict, hasString, hasInt, getList, getDict, getString, getInt
 - lt:limit piece size in torrent creator
 - lt:don't hint FADV_RANDOM on posix systems. May improve seeding performance
 - lt:allow boost connect while checking resume data if no_verify_files flag is set
 - lt:fix BEP-40 peer priority for IPv6
 - lt:fix file pre-allocation when changing file priority (HanabishiRecca)
 - jlibtorrent:SWIG interface files have been modularized for better maintainability and readability
 - jlibtorrent:Added missing alert types
 - jlibtorrent:Introduced typed_bitfield template
 - jlibtorrent:Operator renaming for Java compatibility
 - jlibtorrent:Included boost_system_error_code.i
 - jlibtorrent:Added prepare-macos.sh script
 - jlibtorrent:Updated run-swig.sh script
 - jlibtorrent:Set TORRENT_ABI_VERSION=4
 - jlibtorrent:Libtorrent updated to RC_2_0 (rev:2ab8fedabb7716947edc77958da6d0b5e1040df9)
 - jlibtorrent:Android NDK r26d (LTS) upgrade (from r25c)
 - jlibtorrent:Added `--swig-only` and `--build-only` options to swig/build scripts
 - jlibtorrent:Added `prepare-macos.sh` script for macOS build setup
 - jlibtorrent:Updated `run-swig.sh` script for improved SWIG processing
 - jlibtorrent:Enhanced exception handling in SWIG interfaces
 - jlibtorrent:Fixed issues in file_storage.hpp and ip_filter.hpp
 - jlibtorrent:Adjusted build flags and macros for Boost and libtorrent compatibility
 - jlibtorrent:Enabled SWIG directors for specific classes
 - lt:fix uTP issue where closing the connection could corrupt the payload
 - lt:apply DSCP/TOS to sockets before initiating the TCP connection
 - lt:assume copy_file_range() exists on linux (unless old glibc)
 - lt:fix issue where set_piece_deadline() did not correctly post read_piece_alert
 - lt:fix integer overflow in piece picker
 - lt:torrent_status::num_pieces counts pieces passed hash check, as documented
 - lt:check settings_pack::max_out_request_queue before performance alert
 - lt:allow on_unknown_torrent method in the absence of active torrents (new plugin feature added)
 - lt:add feature to async_move_storage() to not move files
 - lt:fix reject resume data if it contains mismatching info hashes
 - lt:fix clear the candidate_cache when clear peer_list
 - lt:fix missing python converter for dht::announce_flags_t
 - lt:fix issue with web seed connections when they close and re-open
 - lt:fallocate() not supported is not a fatal error
 - lt:fix proxying of IPv6 connections via IPv4 proxy
 - lt:treat CGNAT address range as local IPs
 - lt:add stricter checking of piece layers when loading torrents
 - lt:add stricter checking of v1 and v2 hashes being consistent
 - lt:cache failed DNS lookups as well as successful ones
 - lt:add an i2p torrent state to control interactions with clear swarms
 - lt:fix i2p SAM protocol parsing of quoted messages
 - lt:expose i2p peer destination in peer_info
 - lt:fix i2p tracker announces
 - lt:fix issue with read_piece() stopping torrent on pieces not yet downloaded
 - lt:improve handling of allow_i2p_mixed setting to work for magnet links
 - lt:fix web seed request for renamed single-file torrents
 - lt:fix issue where web seeds could disappear from resume data
 - lt:extend save_resume with additional conditional flags
 - lt:fix issue with retrying trackers in tiers > 0
 - lt:fix last_upload and last_download resume data fields to use posix time
 - lt:improve error messages for no_connect_privileged_ports, by untangle it from the port filter
 - lt:fix I2P issue introduced in 2.0.0
 - lt:add async tracker status query, post_trackers()
 - lt:add async torrent status query, post_status()
 - lt:support loading version 2 of resume data format
 - lt:fix issue with odd piece sizes
 - lt:add async piece availability query, post_piece_availability()
 - lt:add async download queue query, post_download_queue()
 - lt:add async file_progress query, post_file_progress()
 - lt:add async peer_info query, post_peer_info()
 - lt:fix uTP streams timing out instead of closing cleanly
 - lt:add write_torrent_file_buf() overload for generating .torrent files
 - lt:add create_torrent::generate_buf() function to generate into a buffer
 - lt:fix copy_file when the file ends with a sparse region
 - lt:uTP performance, fix packet loss when sending is stalled
 - lt:fix trackers being stuck after session pause/resume
 - lt:fix bug in hash_picker with empty files
 - lt:uTP performance, prevent premature timeouts/resends
 - lt:add option to not memory map files below a certain size
 - lt:settings_pack now returns default values when queried for missing settings
 - lt:fix copy_file fall-back when SEEK_HOL/SEEK_DATA is not supported
 - lt:improve error reporting from file copy and move
 - lt:tweak pad file placement to match reference implementation (tail-padding)
 - lt:uTP performance, more lenient nagle's algorithm to always allow one outstanding undersized packet
 - lt:uTP performance, piggy-back held back undersized packet with ACKs
 - lt:uTP performance, don't send redundant deferred ACKs
 - lt:support incoming SOCKS5 packets with hostnames as source address, for UDP trackers
 - lt:ignore duplicate network interface change notifications on linux
 - lt:fix total_want/want accounting when forcing a recheck
 - lt:fix merging metadata with magnet links added on top of existing torrents
 - lt:add torrent_flag to default all file priorities to dont_download
 - lt:fix &so= feature in magnet links
 - lt:improve compatibility of SOCKS5 UDP ASSOCIATE
 - lt:fix madvise range for flushing cache in mmap_storage
 - lt:open files with no_cache set in O_SYNC mode~
 - lt:fix issue in use of copy_file_range() on linux
 - lt:avoid open-file race in the file_view_pool
 - lt:fix issue where stop-when-ready would not close files
 - lt:fix issue with duplicate hybrid torrent via separate v1 and v2 magnet links
 - lt:added new function to load torrent files, load_torrent_*()
 - lt:support sync_file_range() on linux
 - lt:fix issue in write_torrent_file() when file size is exactly piece size
 - lt:fix file_num_blocks() and file_num_pieces() for empty files
 - lt:add new overload to make_magnet_uri()
 - lt:add missing protocol version to tracker_reply_alert and tracker_error_alert
 - lt:fix privilege issue with SetFileValidData()
 - lt:add asynchronous overload of torrent_handle::add_piece()
 - lt:default to a single hashing thread, for full checks
 - lt:Fix bug when checking files and the first piece is invalid
 - lt:fix issue creating a v2 torrent from torrent_info containing an empty file
 - lt:make recheck files also update which files use partfile
 - lt:add write_through disk_io_write_mode, which flushes pieces to disk immediately
 - lt:improve copy file function to preserve sparse regions (when supported)
 - lt:add function to truncate over-sized files part of a torrent
 - lt:fix directory creation on windows shared folders
 - lt:add flag to make add_files() not record file attributes
 - lt:deprecate (unused) allow_partial_disk_writes settings
 - lt:fix disk-full error reporting in mmap_disk_io
 - lt:fixed similar-torrents feature for v2 torrents
 - lt:fix potential unbounded recursion in add_completed_job, in disk I/O
 - lt:deprecated (unused) volatile_read_cache setting
 - lt:fix part files being marked as hidden on window
 - lt:on windows, explicitly flush memory mapped files periodically
 - lt:fix build with WolfSSL
 - lt:fix issue where incoming uTP connections were not accepted over SOCKS5
 - lt:fix several issues in handling of checking files of v2 torrents, esp. from magnet links
 - lt:make the token limit when parsing metadata from magnet files configurable
 - lt:fix issue with stalled pieces on disk full errors
 - lt:fix missing python binding for file_progress_flags
 - lt:fix torrent_file_with_hashes() to fail when we don't have the piece layers
 - lt:restore path character encoding conversion for non UTF-8 locales on linux
 - lt:fix use-after-free bug in make_magnet_uri
 - lt:add write_torrent_file() to produce a .torrent file from add_torrent_params
 - lt:allow loading v2 .torrent files without piece layer
 - lt:fix issue with adding v2 torrents with invalid file root hash
 - lt:fix piece picker bug causing double-picks with prefer-contiguous enabled
 - lt:expose session_params in python bindings
 - lt:fix (deprecated) use of add_torrent_params::info_hash
 - lt:fix issue creating and loading v2 torrents with empty files. Improves conformance to BEP52 reference implementation
 - lt:add new torrent_file_with_hashes() which includes piece layers for creating .torrent files
 - lt:add file_prio_alert, posted when file priorities are updated
 - lt:fix issue where set_piece_hashes() would not propagate file errors
 - lt:add missing python binding for event_t
 - lt:add work-around for systems without fseeko() (such as Android)
 - lt:add convenience header libtorrent/libtorrent.hpp
 - lt:increase default max_allowed_in_request_queue
 - lt:fix loading non-ascii filenames on windows with torrent_info constructor (2.0 regression)
 - lt:add std::hash<> specialization for info_hash_t
 - lt:fix integer overflow in hash_picker and properly restrict max file sizes in torrents
 - lt:strengthen SSRF mitigation for web seeds
 - lt:add v1() and v2() functions to torrent_info
 - lt:fix piece_layers() to work for single-piece files
 - lt:fix python binding regression in session constructor flags
 - lt:fix unaligned piece requests in mmap_storage
 - lt:improve client_data_t ergonomics
 - lt:fix issue with concurrent access to part files
 - lt:fix attribute in single-file v2 torrent creation
 - lt:fix padding for empty files in v2 torrent creation
 - lt:add function to ask a file_storage whether it's v2 or not
 - lt:fix mtime field when creating single-file v2 torrents
 - lt:fix performance regression in checking files
 - lt:disable use of SetFileValidData() by default (windows). A new setting allows enabling it
 - lt:dropped dependency on iconv
 - lt:deprecate set_file_hash() in torrent creator, as it's superceded by v2 torrents
 - lt:deprecate mutable access to info_section in torrent_info
 - lt:removed deprecated lazy_entry/lazy_bdecode
 - lt:stats_alert deprecated
 - lt:remove bittyrant choking algorithm
 - lt:update userdata in add_torrent_params to be type-safe and add to torrent_handle
 - lt:add ip_filter to session_params
 - lt:added support for wolfSSL for SHA-1 hash and HTTPS (no Torrents over SSL)
 - lt:requires OpenSSL minimum version 1.0.0 with SNI support
 - lt:deprecated save_state() and load_state() on session in favour of new
 - lt:write_session_params() and read_session_params()
 - lt:added support for BitTorrent v2 (see docs/upgrade_to_2.0.html)
 - lt:create_torrent() pad_file_limit parameter removed
 - lt:create_torrent() merkle- and optimize-alignment flags removed
 - lt:merkle_tree removed from add_torrent_params
 - lt:announce_entry expose information per v1 and v2 info-hash announces
 - lt:deprecated sha1_hash info_hash members on torrent_removed_alert,
 - lt:torrent_deleted_alert, torrent_delete_failed_alert and add_torrent_params
 - lt:undeprecate error_file_metadata for torrent errors related to its metadata
 - lt:remove support for adding a torrent under a UUID (used for previous RSS support)
 - lt:remove deprecated feature to add torrents by file:// URL
 - lt:remove deprecated feature to download .torrent file from URL
 - lt:requires boost >= 1.66 to build
 - lt:update networking API to networking TS compatible boost.asio
 - lt:overhauled disk I/O subsystem to use memory mapped files (where available)
 - lt:libtorrent now requires C++14 to build
 - lt:added support for GnuTLS for HTTPS and torrents over SSL
 - lt:fix issue where stop-when-ready would not close files
 - lt:uTP performance, fix packet loss when sending is stalled
 - lt:uTP performance, prevent premature timeouts/resends
 - lt:uTP performance, more lenient nagle's algorithm to always allow one outstanding undersized packet
 - lt:uTP performance, piggy-back held back undersized packet with ACKs
 - lt:uTP performance, don't send redundant deferred ACKs
 - lt:fix wanted_done/done accounting when force-rechecking
 - lt:expose userdata via torrent_handle (back-port from 2.0)
 - lt:fix renaming of filenames that are too long for the filesystem
 - lt:made UPnP and LSD code avoid using select_reactor (to work around an issue on windows in boost.asio < 1.80)
 ```

[![Download FrostWire](https://a.fsdn.com/con/app/sf-download-button)](https://sourceforge.net/projects/frostwire/files/frostwire-android-3.0.4-build-758/)
Source: README.md, updated 2025-10-16