Releases: frostwire/frostwire
frostwire-desktop-7.0.1-build-328
frostwire (7.0.1) stable; urgency=high
- Fixes bug where .torrent files were not saved in the user's torrent folder when starting a download from a search result
- Installer now removes old FrostWire 6 installation if present
- EDT freeze: LanguageUtils.getLocales()
- EDT freeze: Cache overlay background to eliminate EDT blocking in SlideControlsOverlay
-- FrostWire Team contact@frostwire.com Sat, 6 Dec 2025 09:23:00 -0600
frostwire-android-3.0.12-build-766
🚀 FrostWire for Android: Massive Relaunch (2025)
We're incredibly excited to announce the biggest overhaul of FrostWire for Android in years, representing two years of dedicated development. This update delivers unprecedented speed, stability, and a renewed commitment to your privacy.
🔒 Core Principle Change: Zero Ads and Tracking
The most significant change is our commitment to a truly private experience:
- 🚫 Complete Ad Removal: We have permanently eliminated all third-party ads and advertising tracking of any kind. We will only offer you our FrostWire compatible VPN recommendations to protect your privacy and ask for your continued support.
- 🧘 Distraction-Free Search: Search is now optimized for speed and focus, with the distraction-free mode enabled by default.
⚡ Performance & Stability: Upgrading the Core Engine
We've integrated the new jlibtorrent 2.0.12.7, bringing hundreds of bug fixes and next-generation features:
New Features
- BitTorrent v2 Protocol Support: Full support for the modern v2 and hybrid v1/v2 protocols.
- New Search Sources: Added Knaben and TorrentCSV search performers for more results.
- Flexible Port Selection: New setting:
Settings > Torrent Settings > Incoming Connection Port Range selection. - Automatic Seeding: Finished HTTP transfers are now seeded automatically if seeding is enabled (matching desktop functionality).
Major Performance Optimizations
- Architectural Overhaul: Achieved a 25-50% reduction in memory allocations and significantly reduced garbage collection pressure.
-
Blazing Fast Search: Search sorting has been optimized from
$O(n^2 \log n)$ to$O(n \log n)$ . - 8.8x Speed Gains: Title normalization and cleaning is now dramatically faster by eliminating heavy regular expressions.
- Efficient I/O: CPU usage during disk I/O operations is reduced by 30-50% (up to 96% in system write calls) by using buffered I/O.
Critical Crash & Freeze Fixes
- Eliminated ANR Crashes: Fixed numerous ANR (Application Not Responding) crashes in the Transfers list, menu preparation, and playback services by moving blocking tasks to background threads.
- Network API Migration: Fixed critical issues with VPN Guard and Wi-Fi-Only protection by migrating from deprecated network APIs to the modern NetworkCallback API.
- VPN Guard: Now correctly stops torrents when a VPN is required but not connected.
- Wi-Fi-Only: Correctly pauses torrent downloads on mobile data.
- Protection Visuals: Added visual status indicators in the transfers screen to show when protections pause downloads.
🔧 Maintenance & Library Upgrades
We've updated the entire internal technology stack for security and modern compatibility:
- Image Loading: Replaced the older Picasso library with the modern Coil image loading library.
- Library Updates: Updated Kotlin, Gradle, OkHttp, and many core AndroidX libraries.
- Removal of Dead Performers: Removed the TorrentDownloads, BTDigg, Torlock, and LimeTorrents search performers due to being permanently offline or unreliable.
- jlibtorrent Updates: Upgraded to jlibtorrent 2.0.x with C++20 compilation, OpenSSL 3.5.2, and Boost 1.88.0.
This update ensures FrostWire is faster, more stable, more private, and ready for years to come!
FrostWire 3.0.12 build 766 DEC/02/2025
- new:Powered by jlibtorrent 2.0.12.7 with bittorrent v2 protocol support with hundreds of bug fixes and performance improvements
- new:No more third party ads or advertising tracking of any kind. Only frostwire support requests, vpn suggestions and promotional free downloads.
- 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:Dynamic SoundCloud client ID and app version fetching from remote server for uninterrupted service
- new:YT search results now handled via details URL detection (youtube.com)
- new:SearchResultUtils utility class for reusable search result utilities
- new:Telluride dialog now works with generic SearchResult instead of YTSearchResult
- new:Distraction free search now on by default, much better experience
- performance:Search architecture optimizations - 25-50% reduction in memory allocations
- performance:SizeParser utility consolidates duplicate implementations, 200+ lines of code eliminated
- performance:SearchMatcher memory optimization reduces garbage collection pressure by 25%
- performance:YT pattern static initialization and string operation optimization
- performance:PerformersHelper.sanitize() 8.8x speed gains in title normalization by not using a regex and instead simple string replacements
- performance:Optimize stackBlur() with array pooling to reduce allocations
- performance:Added periodic VPN/WiFi protection state monitoring to detect VPN disconnections immediately
- performance:Performance optimized periodic checks run on background thread to keep UI responsive
- performance:Added visual status indicators in transfers screen when protections pause downloads
- performance:Optimize search sorting from O(n² log n) to O(n log n)
- performance:reuse OkHttpClient instances to unlock connection pooling and reduce GC pressure
- performance:Replace global Hashtable throttling with lock-free ConcurrentHashMap in TaskThrottle
- performance:Cache torrent-search date parsers to eliminate per-result SimpleDateFormat allocations
- performance: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
- performance:Optimize Levenshtein distance allocation footprint in PerformersHelper fuzzy matching
- performance:Optimize hot paths for string sanitizers - eliminate regex compilation overhead in search and scrapes (UrlUtils and StringUtils)
- performance:Optimize hot paths for Logger, ThreadPool, and collection sizing
- performance:Optimize MainApplication startup by deferring heavy initialization
- performance:Optimize RecyclerView onBindViewHolder() hot paths
- crash:ANR crashes in Transfers list when updating transfer state due to blocking JNI calls
- crash:ANR crash in menu preparation - menu visibility now cached on background thread
- crash:ANR crash during transfer list adapter initialization - UI state capture moved to background thread
- crash:ANR crash in transfer detail fragment - download/upload speeds cached on background thread
- crash:ANR crash in onCheckDHT - DHT status updates cached on background thread
- crash:ANR crash in BasePlaylistDialog - removed blocking CountDownLatch.await() on main thread
- crash:ANR crash in transfer list adapter - DiffUtil calculations moved to background thread
- crash:NullPointerException in AbstractConfirmListDialog when "select all" clicked with empty list
- crash:logic bug in PerformersHelper.countMatchedTokens(), matched tokens were not counted correctly
- crash:ForegroundServiceStartNotAllowedException by adding foreground check and error handling
- crash:Android 14+ ForegroundServiceStartNotAllowedException in MusicPlaybackService
- crash:Android JobScheduler alarm limit exceeded crashes by configuring WorkManager
- crash:ClassCastException in SearchResultListAdapter OnLinkClickListener
- crash:HandlerDispatcher NullPointerException crashes in Picasso image loading (removed on build 760)
- crash:NPE in ImageFetcher.loadCurrentArtwork()
- crash:WiFi-Only protection and VPN Guard were broken due to deprecated network API changes
- crash:Migrated network monitoring from deprecated CONNECTIVITY_ACTION broadcasts to modern NetworkCallback API
- crash:WiFi-Only protection now correctly pauses torrent downloads on mobile data when setting is enabled
- crash:VPN Guard protection now correctly stops torrents when VPN is required but not connected
- crash:NullPointerException in BasePlaylistDialog when fragment is detached from activity
- crash:NullPointerException in MusicUtils.getIdForPlaylist() with defensive null check
- crash:NameError in telluride.py query_video() - undefined qjs_path variable
- crash:ConcurrentModificationException in Ssl$FWHostnameVerifier
- crash:Picasso HandlerDispatcher NullPointerException on network state changes when app is backgrounded by keeping Picasso alive instead of shutting down (removed on build 760)
- crash:thread leak and data race in UrlUtils.getFastestMirrorDomain
- 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
- freeze:in playFDs
- freeze:in MusicPlaybackService.setDataSource
- maintenance:Guard favorites toast when fragment detached
- maintenance:ProGuard now uses proguard-android-optimize.txt for better code optimization and APK size reduction
- maintenance:Updated gradle plugin to 8.13.1
- maintenance:Updated okhttp3 to 5.3.2
- maintenance:Updated androidx.lifecycle:lifecycle-viewmodel-ktx to 2.10.0
- maintenance:Updated Kotlin to 2.2.21
- maintenance:Updated com.google.gms:google-services to 4.4.4
- maintenance:Updated com.google.android.ump:user-messaging-platform to 4.0.0
- maintenance:SearchTimeoutException provides better diagnostics with performer and domain context
- maintenance:Search package hierarchy flattened, V2 pac...
frostwire-android-3.0.11-build-765
🚀 FrostWire for Android: Massive Relaunch (2025)
We're incredibly excited to announce the biggest overhaul of FrostWire for Android in years, representing two years of dedicated development. This update delivers unprecedented speed, stability, and a renewed commitment to your privacy.
🔒 Core Principle Change: Zero Ads and Tracking
The most significant change is our commitment to a truly private experience:
- 🚫 Complete Ad Removal: We have permanently eliminated all third-party ads and advertising tracking of any kind. We will only offer you our FrostWire compatible VPN recommendations to protect your privacy and ask for your continued support.
- 🧘 Distraction-Free Search: Search is now optimized for speed and focus, with the distraction-free mode enabled by default.
⚡ Performance & Stability: Upgrading the Core Engine
We've integrated the new jlibtorrent 2.0.12.7, bringing hundreds of bug fixes and next-generation features:
New Features
- BitTorrent v2 Protocol Support: Full support for the modern v2 and hybrid v1/v2 protocols.
- New Search Sources: Added Knaben and TorrentCSV search performers for more results.
- Flexible Port Selection: New setting:
Settings > Torrent Settings > Incoming Connection Port Range selection. - Automatic Seeding: Finished HTTP transfers are now seeded automatically if seeding is enabled (matching desktop functionality).
Major Performance Optimizations
- Architectural Overhaul: Achieved a 25-50% reduction in memory allocations and significantly reduced garbage collection pressure.
-
Blazing Fast Search: Search sorting has been optimized from
$O(n^2 \log n)$ to$O(n \log n)$ . - 8.8x Speed Gains: Title normalization and cleaning is now dramatically faster by eliminating heavy regular expressions.
- Efficient I/O: CPU usage during disk I/O operations is reduced by 30-50% (up to 96% in system write calls) by using buffered I/O.
Critical Crash & Freeze Fixes
- Eliminated ANR Crashes: Fixed numerous ANR (Application Not Responding) crashes in the Transfers list, menu preparation, and playback services by moving blocking tasks to background threads.
- Network API Migration: Fixed critical issues with VPN Guard and Wi-Fi-Only protection by migrating from deprecated network APIs to the modern NetworkCallback API.
- VPN Guard: Now correctly stops torrents when a VPN is required but not connected.
- Wi-Fi-Only: Correctly pauses torrent downloads on mobile data.
- Protection Visuals: Added visual status indicators in the transfers screen to show when protections pause downloads.
🔧 Maintenance & Library Upgrades
We've updated the entire internal technology stack for security and modern compatibility:
- Image Loading: Replaced the older Picasso library with the modern Coil image loading library.
- Library Updates: Updated Kotlin, Gradle, OkHttp, and many core AndroidX libraries.
- Removal of Dead Performers: Removed the TorrentDownloads, BTDigg, Torlock, and LimeTorrents search performers due to being permanently offline or unreliable.
- jlibtorrent Updates: Upgraded to jlibtorrent 2.0.x with C++20 compilation, OpenSSL 3.5.2, and Boost 1.88.0.
This update ensures FrostWire is faster, more stable, more private, and ready for years to come!
FrostWire 3.0.11 build 765 NOV/29/2025
- new:Powered by jlibtorrent 2.0.12.7 with bittorrent v2 protocol support with hundreds of bug fixes and performance improvements
- new:No more third party ads or advertising tracking of any kind. Only frostwire support requests, vpn suggestions and promotional free downloads.
- 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:Dynamic SoundCloud client ID and app version fetching from remote server for uninterrupted service
- new:YT search results now handled via details URL detection (youtube.com)
- new:SearchResultUtils utility class for reusable search result utilities
- new:Telluride dialog now works with generic SearchResult instead of YTSearchResult
- new:Distraction free search now on by default, much better experience
- performance:Search architecture optimizations - 25-50% reduction in memory allocations
- performance:SizeParser utility consolidates duplicate implementations, 200+ lines of code eliminated
- performance:SearchMatcher memory optimization reduces garbage collection pressure by 25%
- performance:YT pattern static initialization and string operation optimization
- performance:PerformersHelper.sanitize() 8.8x speed gains in title normalization by not using a regex and instead simple string replacements
- performance:Optimize stackBlur() with array pooling to reduce allocations
- performance:Added periodic VPN/WiFi protection state monitoring to detect VPN disconnections immediately
- performance:Performance optimized periodic checks run on background thread to keep UI responsive
- performance:Added visual status indicators in transfers screen when protections pause downloads
- performance:Optimize search sorting from O(n² log n) to O(n log n)
- performance:reuse OkHttpClient instances to unlock connection pooling and reduce GC pressure
- performance:Replace global Hashtable throttling with lock-free ConcurrentHashMap in TaskThrottle
- performance:Cache torrent-search date parsers to eliminate per-result SimpleDateFormat allocations
- performance: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
- performance:Optimize Levenshtein distance allocation footprint in PerformersHelper fuzzy matching
- performance:Optimize hot paths for string sanitizers - eliminate regex compilation overhead in search and scrapes (UrlUtils and StringUtils)
- performance:Optimize hot paths for Logger, ThreadPool, and collection sizing
- performance:Optimize MainApplication startup by deferring heavy initialization
- performance:Optimize RecyclerView onBindViewHolder() hot paths
- crash:ANR crashes in Transfers list when updating transfer state due to blocking JNI calls
- crash:ANR crash in menu preparation - menu visibility now cached on background thread
- crash:ANR crash during transfer list adapter initialization - UI state capture moved to background thread
- crash:ANR crash in transfer detail fragment - download/upload speeds cached on background thread
- crash:ANR crash in onCheckDHT - DHT status updates cached on background thread
- crash:ANR crash in BasePlaylistDialog - removed blocking CountDownLatch.await() on main thread
- crash:ANR crash in transfer list adapter - DiffUtil calculations moved to background thread
- crash:NullPointerException in AbstractConfirmListDialog when "select all" clicked with empty list
- crash:logic bug in PerformersHelper.countMatchedTokens(), matched tokens were not counted correctly
- crash:ForegroundServiceStartNotAllowedException by adding foreground check and error handling
- crash:Android 14+ ForegroundServiceStartNotAllowedException in MusicPlaybackService
- crash:Android JobScheduler alarm limit exceeded crashes by configuring WorkManager
- crash:ClassCastException in SearchResultListAdapter OnLinkClickListener
- crash:HandlerDispatcher NullPointerException crashes in Picasso image loading (removed on build 760)
- crash:NPE in ImageFetcher.loadCurrentArtwork()
- crash:WiFi-Only protection and VPN Guard were broken due to deprecated network API changes
- crash:Migrated network monitoring from deprecated CONNECTIVITY_ACTION broadcasts to modern NetworkCallback API
- crash:WiFi-Only protection now correctly pauses torrent downloads on mobile data when setting is enabled
- crash:VPN Guard protection now correctly stops torrents when VPN is required but not connected
- crash:NullPointerException in BasePlaylistDialog when fragment is detached from activity
- crash:NullPointerException in MusicUtils.getIdForPlaylist() with defensive null check
- crash:NameError in telluride.py query_video() - undefined qjs_path variable
- crash:ConcurrentModificationException in Ssl$FWHostnameVerifier
- crash:Picasso HandlerDispatcher NullPointerException on network state changes when app is backgrounded by keeping Picasso alive instead of shutting down (removed on build 760)
- crash:thread leak and data race in UrlUtils.getFastestMirrorDomain
- 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
- freeze:in playFDs
- freeze:in MusicPlaybackService.setDataSource
- maintenance:Guard favorites toast when fragment detached
- maintenance:ProGuard now uses proguard-android-optimize.txt for better code optimization and APK size reduction
- maintenance:Updated gradle plugin to 8.13.1
- maintenance:Updated okhttp3 to 5.3.2
- maintenance:Updated androidx.lifecycle:lifecycle-viewmodel-ktx to 2.10.0
- maintenance:Updated Kotlin to 2.2.21
- maintenance:Updated com.google.gms:google-services to 4.4.4
- maintenance:Updated com.google.android.ump:user-messaging-platform to 4.0.0
- maintenance:SearchTimeoutException provides better diagnostics with performer and domain context
- maintenance:Search package hierarchy flattened, V2 package con...
frostwire-desktop-7.0.0-build-327
frostwire (7.0.0) stable; urgency=high
- New:Powered by Jlibtorrent 2.0.12.5 with bittorrent 2.0 support and hundreds of optimizations
- New:Dynamic SoundCloud client ID and app version fetching from remote server for uninterrupted service
- New:TorrentCSV search performer
- New:Knaben Database Search Performer
- New:Partial selection file dialog now allows shift-click to select ranges of files in torrents
- New:settings panel to pick location for .torrent files
- New:FlatLaf light theme
- New:Header bar rearranged, search bar goes to the center, nav buttons on the left, FW Logo first
- New:Torrent Transfer > Advanced > Check local data feature. If a file belonging to a torrent is now on disk it can be force checked
- New:Audio and video playback now uses the operating system's default media player instead of custom player infrastructure
- New:Strict EDT Mode to catch long running tasks stalling event dispatch thread
- EDT freeze:Comprehensive startup performance overhaul - defer heavy class loading and I/O to prevent EDT blocking during initialization (19 EDT violations fixed)
- EDT freeze:ResourceManager uses deferred image loading instead of synchronous MediaTracker to avoid blocking on image I/O
- EDT freeze:LibraryCoverArtPanel defers component listener initialization with SwingUtilities.invokeLater()
- EDT freeze:SearchMediator uses lazy singleton pattern with deferred SearchResultDisplayer creation
- EDT freeze:MPlayerInstance.runCommand() moved to background thread to avoid Process.waitFor() blocking EDT
- EDT freeze:SearchResultDisplayer creation deferred with placeholder component to avoid class loading file I/O during tab initialization
- EDT freeze:SplashWindow preloads OS icons during initialization to avoid file I/O during paint operations
- EDT freeze:StatusLine defers bandwidth label icon loading to background EDT cycle using SwingUtilities.invokeLater()
- EDT freeze:ApplicationHeader defers MediaPlayerComponent creation with placeholder panel to prevent class loading during startup
- EDT freeze:MainFrame defers expensive minimum size calculations to background thread - prevents 2+ second EDT blocking from cascading layout calculations
- EDT freeze:AbstractTab implements lazy icon loading to defer tab icon loading via SwingUtilities.invokeLater() on first getIcon() call
- EDT freeze:SearchResultActionsRenderer defers 5 action button icons (play, download, details, speaker) via lazy static initialization with ensureIconsLoaded()
- EDT freeze:AbstractActionsRenderer defers 3 action button icons (play, download, share) via lazy static initialization with ensureIconsLoaded()
- EDT freeze:SourceRenderer defers 7 source icons (soundcloud, archive.org, tpb, zooqle, magnetdl, default, 1337x) via lazy static initialization with ensureIconsLoaded()
- EDT freeze:TransferActionsRenderer defers 2 action button icons (play, share) via lazy static initialization with ensureIconsLoaded()
- EDT freeze:TransferSeedingRenderer defers 2 seeding icons (seed, loading) via lazy static initialization with ensureIconsLoaded()
- EDT freeze:TransferDetailFilesActionsRenderer defers 2 file action icons (play, share) via lazy static initialization with ensureIconsLoaded()
- EDT freeze:PaymentOptionsRenderer defers 4 payment method icons (bitcoin_enabled, bitcoin_disabled, paypal_enabled, paypal_disabled) via lazy static initialization
- EDT freeze:LogoPanel defers logo_header icon loading via SwingUtilities.invokeLater() with placeholder label
- EDT freeze:MediaButton defers button icon loading (up and down icons) via SwingUtilities.invokeLater() in loadIcons() method
- EDT freeze:LimeJFrame defers window icon loading via SwingUtilities.invokeLater() in loadWindowIcon() method
- Performance:These EDT fixes significantly improve startup time and responsiveness, especially on resource-constrained systems and older hardware
- Performance:Search architecture optimizations - 25-50% reduction in memory allocations
- Performance:SizeParser utility consolidates duplicate implementations, 200+ lines of code eliminated
- Performance:SearchMatcher memory optimization reduces garbage collection pressure by 25%
- Performance:YT pattern static initialization and string operation optimization
- Maintenance:SearchTimeoutException provides better diagnostics with performer and domain context
- Maintenance:Search package hierarchy flattened, V2 package consolidated
- Removed:TorrentDownloads search performer (site offline permanently)
- Removed:BTDigg search performer (protected by Cloudflare, unable to reliably parse search results)
- Maintenance:mplayer not available in linux warning can now not be shown ever again
- Removed:Torlock search performer (old site is down, new site is malicious)
- Removed:LimeTorrents search performer
- Maintenance:MacEventHandler is now compatible with JDK 23 and JDK 24
- Maintenance:Archive.org search
- Maintenance:GloTorrents search
- Maintenance:Idope search
- Maintenance:MagnetDL search
- Crash: fixed NPE in MultilineToolTip.updateUI() when switching from Synth L&F
- Removed:FrostWire Media Player custom built-in audio/video player (fwplayer binaries for Windows/macOS/Linux)
- Removed:MPlayer integration code and process management for audio playback
- Removed:Player settings panel and configuration options
- Removed:Playback state tracking and speaker icon indicators in UI components (TransferActionsRenderer, LibraryFilesTableDataLine, SearchResultActionsRenderer, etc.)
- Removed:Speaker icon assets (speaker.png, speaker_light.png)
- EDT freeze:moved media checks off EDT; coalesce selection; add EDT I/O guard
- EDT freeze: Fix in TransferDetailFiles by moving heavy I/O to background thread, would stall app when opening large torrents on startup
- Cleanup:removed all remnants of azureus source code
- Optimization:PerformersHelper.sanitize() 8.8x speed gains in title normalization by not using a regex and instead simple string replacements
- Fixed:logic bug in PerformersHelper.countMatchedTokens()
- Cleanup:apple libdispatch removal
- Cleanup:deprecated iTunes integration removed after cleanups. Users can manage their own playlists on Apple Music.
- New: libtorrent::set_piece_hashes_posix_disk_io to avoid SIGSEGV/SIGBUS leaks to macos when creating torrents
- Crash:don't crash if a null set_piece_hashes_listener is passed to set_piece_hashes_ex
- Crash:StatusLine seedingStatusButton.getText()
- Crash:ConcurrentModificationException in Ssl$FWHostnameVerifier
- Cleanup:Remove unused sun.awt.X11 classes (linux)
- Maintenance:fix javadoc errors, javadoc cleanup
- Maintenance:all license headers are consistent with GPL 3.0
- Maintenance:simplified donations buttons in status bar to a single 'Donate' button
- Maintenance:added don't show me again for linux warning when mplayer isn't found
- Maintenance:fwplayer_osx.arm64 rebuilt with OpenSSL 3.5.3 support
- Speed-up:reuse OkHttpClient instances to unlock connection pooling and reduce GC pressure
- 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:Refactor SearchManager tasks to Runnable and remove Thread.yield() from hot path
- Fixed:thread leak and data race in UrlUtils.getFastestMirrorDomain
- EDT freeze:Comprehensive fix for EDT violations in transfers UI with multiple optimization layers
- EDT freeze:Move BTDownloadModel.refresh() to background thread to prevent EDT blocking during model updates
- EDT freeze:Add debouncing to BTDownloadDataLine.update() to prevent rapid successive JNI calls
- EDT freeze:Throttle TransferActionsRenderer state checks to 200ms intervals during table rendering
- EDT freeze:Move clearable downloads check to background thread in BTDownloadMediator.doRefresh()
- EDT freeze:Add count caching to BTDownloadModel with background updates every 500ms
- EDT freeze:Cache active uploads for hidden downloads in BTDownloadRowFilteredModel
- EDT freeze:Use cached transfer state instead of expensive JNI calls in button state updates
- 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 opt...
frostwire-android-3.0.10-build-764
🧱 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++2aon 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_17compatibility. - 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_handlewith new overloads (get_resume_data(flags),add_piece(async)). - New runtime checks for
add_torrent_params::save_pathvalidation. - 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_dlpbinary 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 newRunnabletask model inSearchManager. - Logger,
ThreadPool, andRecyclerViewhot paths heavily optimized. - Startup time reduced via deferred heavy initialization.
- Memory safety improvements with
Bitmap.recycle()andinSampleSizescaling to prevent OOMs.
UI & UX
- Picasso replaced for Coil
- 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
JobScheduleralarm limit exceptions. - Optimized music metadata cleanup and playlist handling in background.
🧠 Code Quality & Refactoring
- SearchManager rewritten to use modern
Runnabletask 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.shand improved build scripts (run-swig.sh,build-only,swig-onlyoptions). - Enhanced exception handling, typed bitfields, and Boost error code wrapping in SWIG bindings.
🧩 Stability & Crash Fixes
- Fixed multiple ANRs in:
MusicPlaybackService.setDataSourceMusicPlaybackService.playFDs- Large result sorting
Picassobackground handlers
- Fixed NullPointerExceptions in
ImageFetcherandHandlerDispatcher. - 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.
🔧 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, andhash_pickerfixes. - 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.10 build 764 NOV/16/2025
- performance:Search architecture optimizations - 25-50% reduction in memory allocations
- performance:SizeParser utility consolidates duplicate implementations, 200+ lines of code eliminated
- performance:SearchMatcher memory optimization reduces garbage collection pressure by 25%
- performance:YT pattern static initialization and string operation optimization
- maintenance:SearchTimeoutException provides better diagnostics with performer and domain context
- maintenance:Search package hierarchy flattened, V2 package consolidated
- removed:TorrentDownloads search performer (site offline permanently)
- removed:BTDigg search performer (protected by Cloudflare, unable to reliably parse search results)
- new:Dynamic SoundCloud client ID and app version fetching from remote server for uninterrupted service
- 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.10.22
- replaced:Picasso for Coil image loading library
- removed:Torlock search performer (old site is down, new site is malicious)
- removed:LimeTorrents search performer
- 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
- fix:WiFi-Only protection and VPN Guard were broken due to deprecated network API changes
- fix:Migrated network monitoring from deprecated CONNECTIVITY_ACTION broadcasts to modern NetworkCallback API
- fix:WiFi-Only protection now correctly pauses torrent downloads on mobile data when setting is enabled
- fix:VPN Guard protection now correctly stops torrents when VPN is required but not connected
- fix:NullPointerException in BasePlaylistDialog when fragment is detached from activity
- fix:NullPointerException in MusicUtils.getIdForPlaylist() with defensive null check
- fix:NameError in telluride.py query_video() - undefined qjs_path variable
- new:YouTube search results now handled via details URL detection (youtube.com)
- new:SearchResultUtils utility class for reusa...
frostwire-android-3.0.9-build-763
FrostWire 3.0.9 (Build 763) — Comprehensive Change Report
Release Date: October 27, 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++2aon 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_17compatibility. - 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_handlewith new overloads (get_resume_data(flags),add_piece(async)). - New runtime checks for
add_torrent_params::save_pathvalidation. - 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_dlpbinary 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 newRunnabletask model inSearchManager. - Logger,
ThreadPool, andRecyclerViewhot paths heavily optimized. - Startup time reduced via deferred heavy initialization.
- Memory safety improvements with
Bitmap.recycle()andinSampleSizescaling to prevent OOMs.
UI & UX
- Picasso replaced for Coil
- 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
JobScheduleralarm limit exceptions. - Optimized music metadata cleanup and playlist handling in background.
🧠 Code Quality & Refactoring
- SearchManager rewritten to use modern
Runnabletask 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.shand improved build scripts (run-swig.sh,build-only,swig-onlyoptions). - Enhanced exception handling, typed bitfields, and Boost error code wrapping in SWIG bindings.
🧩 Stability & Crash Fixes
- Fixed multiple ANRs in:
MusicPlaybackService.setDataSourceMusicPlaybackService.playFDs- Large result sorting
Picassobackground handlers
- Fixed NullPointerExceptions in
ImageFetcherandHandlerDispatcher. - 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, andhash_pickerfixes. - 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.8 Build 762
The most stable, efficient, and privacy-respecting FrostWire release to date.
FrostWire 3.0.9 build 763 OCT/27/2025
- new:Dynamic SoundCloud client ID and app version fetching from remote server for uninterrupted service
- 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.10.22
- replaced:Picasso for Coil image loading library
- removed:Torlock search performer (old site is down, new site is malicious)
- removed:LimeTorrents search performer
- 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:Arc...
frostwire-android-3.0.8-build-762
FrostWire 3.0.8 (Build 762) — Comprehensive Change Report
Release Date: October 20, 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++2aon 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_17compatibility. - 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_handlewith new overloads (get_resume_data(flags),add_piece(async)). - New runtime checks for
add_torrent_params::save_pathvalidation. - 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_dlpbinary 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 newRunnabletask model inSearchManager. - Logger,
ThreadPool, andRecyclerViewhot paths heavily optimized. - Startup time reduced via deferred heavy initialization.
- Memory safety improvements with
Bitmap.recycle()andinSampleSizescaling to prevent OOMs.
UI & UX
- Picasso replaced for Coil
- 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
JobScheduleralarm limit exceptions. - Optimized music metadata cleanup and playlist handling in background.
🧠 Code Quality & Refactoring
- SearchManager rewritten to use modern
Runnabletask 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.shand improved build scripts (run-swig.sh,build-only,swig-onlyoptions). - Enhanced exception handling, typed bitfields, and Boost error code wrapping in SWIG bindings.
🧩 Stability & Crash Fixes
- Fixed multiple ANRs in:
MusicPlaybackService.setDataSourceMusicPlaybackService.playFDs- Large result sorting
Picassobackground handlers
- Fixed NullPointerExceptions in
ImageFetcherandHandlerDispatcher. - 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, andhash_pickerfixes. - 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.8 Build 762
The most stable, efficient, and privacy-respecting FrostWire release to date.
FrostWire 3.0.8 build 762 OCT/20/2025
- new:Dynamic SoundCloud client ID and app version fetching from remote server for uninterrupted service
- 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.10.14
- replaced:Picasso for Coil image loading library
- removed:Torlock search performer (old site is down, new site is malicious)
- removed:LimeTorrents search performer
- 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:Arc...
frostwire-android-3.0.7-build-761
FrostWire 3.0.7 (Build 761) — Comprehensive Change Report
Release Date: October 16, 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++2aon 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_17compatibility. - 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_handlewith new overloads (get_resume_data(flags),add_piece(async)). - New runtime checks for
add_torrent_params::save_pathvalidation. - 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_dlpbinary 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 newRunnabletask model inSearchManager. - Logger,
ThreadPool, andRecyclerViewhot paths heavily optimized. - Startup time reduced via deferred heavy initialization.
- Memory safety improvements with
Bitmap.recycle()andinSampleSizescaling to prevent OOMs.
UI & UX
- Picasso replaced for Coil
- 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
JobScheduleralarm limit exceptions. - Optimized music metadata cleanup and playlist handling in background.
🧠 Code Quality & Refactoring
- SearchManager rewritten to use modern
Runnabletask 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.shand improved build scripts (run-swig.sh,build-only,swig-onlyoptions). - Enhanced exception handling, typed bitfields, and Boost error code wrapping in SWIG bindings.
🧩 Stability & Crash Fixes
- Fixed multiple ANRs in:
MusicPlaybackService.setDataSourceMusicPlaybackService.playFDs- Large result sorting
Picassobackground handlers
- Fixed NullPointerExceptions in
ImageFetcherandHandlerDispatcher. - 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, andhash_pickerfixes. - 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.7 Build 761
The most stable, efficient, and privacy-respecting FrostWire release to date.
FrostWire 3.0.7 build 761 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.10.14
- 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:ArchiveorgSearchPerformer -> InternetArchiveSearchPerformer
- maintenance:glotorrents search fixed
- maintenance:idope search fixed
- maintenance:...
frostwire-android-3.0.6-build-760
What's Changed
- [android] Replace Picasso with Coil to eliminate HandlerDispatcher crashes by @Copilot in #1215
Full Changelog: frostwire-android-3.0.5-build-759...frostwire-android-3.0.6-build-760
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++2aon 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_17compatibility. - 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_handlewith new overloads (get_resume_data(flags),add_piece(async)). - New runtime checks for
add_torrent_params::save_pathvalidation. - 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_dlpbinary 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 newRunnabletask model inSearchManager. - Logger,
ThreadPool, andRecyclerViewhot paths heavily optimized. - Startup time reduced via deferred heavy initialization.
- Memory safety improvements with
Bitmap.recycle()andinSampleSizescaling to prevent OOMs.
UI & UX
- Picasso 3.0.0-alpha06 upgrade with custom
ImageLoaderrefactor. - 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
JobScheduleralarm limit exceptions. - Optimized music metadata cleanup and playlist handling in background.
🧠 Code Quality & Refactoring
- SearchManager rewritten to use modern
Runnabletask 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.shand improved build scripts (run-swig.sh,build-only,swig-onlyoptions). - Enhanced exception handling, typed bitfields, and Boost error code wrapping in SWIG bindings.
🧩 Stability & Crash Fixes
- Fixed multiple ANRs in:
MusicPlaybackService.setDataSourceMusicPlaybackService.playFDs- Large result sorting
Picassobackground handlers
- Fixed NullPointerExceptions in
ImageFetcherandHandlerDispatcher. - 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, andhash_pickerfixes. - 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 r...
frostwire-android-3.0.5-build-759
FrostWire 3.0.5 (Build 759) — 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++2aon 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_17compatibility. - 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_handlewith new overloads (get_resume_data(flags),add_piece(async)). - New runtime checks for
add_torrent_params::save_pathvalidation. - 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_dlpbinary 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 newRunnabletask model inSearchManager. - Logger,
ThreadPool, andRecyclerViewhot paths heavily optimized. - Startup time reduced via deferred heavy initialization.
- Memory safety improvements with
Bitmap.recycle()andinSampleSizescaling to prevent OOMs.
UI & UX
- Picasso 3.0.0-alpha06 upgrade with custom
ImageLoaderrefactor. - 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
JobScheduleralarm limit exceptions. - Optimized music metadata cleanup and playlist handling in background.
🧠 Code Quality & Refactoring
- SearchManager rewritten to use modern
Runnabletask 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.shand improved build scripts (run-swig.sh,build-only,swig-onlyoptions). - Enhanced exception handling, typed bitfields, and Boost error code wrapping in SWIG bindings.
🧩 Stability & Crash Fixes
- Fixed multiple ANRs in:
MusicPlaybackService.setDataSourceMusicPlaybackService.playFDs- Large result sorting
Picassobackground handlers
- Fixed NullPointerExceptions in
ImageFetcherandHandlerDispatcher. - 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 |
com.squareup.picasso3:picasso |
3.0.0-alpha06 |
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, andhash_pickerfixes. - 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.5 build 759 OCT/12/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
- 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
- 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...