Releases: frostwire/frostwire
frostwire-android-3.0.15-build-769
FrostWire 3.0.15 build 769 JAN/02/2026
- fix:Transfer removal now disappears immediately from UI without reappearing - removed from adapter instantly and manager synchronously before refresh cycle can re-add it
- fix:Transfers list UI responsiveness improved for stop/cancel/delete operations - adapter updates now use targeted item removal instead of full list rebuilds
- fix:HexHiveView rendering now responsive - added dedicated 2-threaded executor to prevent blocking sequential handler queue when drawing large hexagon grids
- improvement:Parallel execution for independent background tasks - file I/O, icon loading, and search operations now run concurrently instead of sequentially
- com.chaquo.python:gradle:17.0.0
frostwire-android-3.0.14-build-768
FrostWire 3.0.14 build 768 DEC/30/2025
- crash:Race condition in BTEngine initialization - ConfigurationManager wasn't fully initialized before BTEngineInitializer read port preferences, causing port 0 binding failures
- crash:Session failed to initialize when BTEngineInitializer started without waiting for ConfigurationManager to load preferences
- crash:Torrent downloads never started despite successful session initialization - AsyncStartDownload was checking for old TorrentSearchResult interface but new search architecture returns CompositeFileSearchResult
- crash:Search results from torrent sources (TPB, 1337X, MagnetDL, etc.) weren't recognized as torrents after V2 architecture consolidation
- fix:Added support for both old TorrentSearchResult interface and new CompositeFileSearchResult.isTorrent() in AsyncStartDownload
- fix:Call ConfigurationManager.instance() to block until preferences are fully loaded before starting BTEngineInitializer
- fix:BTEngine now properly listens on configured port ranges instead of failing with port 0
- fix:Transfer status showing "Error" for newly started torrents - invalidated status cache now fetches fresh status instead of returning ERROR
- maintenance:Updated gradle plugin to 8.13.2
- maintenance:Updated yt_dlp to 2025.12.08
- maintenance:Updated androidx.exifinterface:exifinterface to 1.4.2
- maintenance:Updated androidx.swiperefreshlayout:swiperefreshlayout to 1.2.0
- maintenance:Updated com.google.firebase:firebase-bom to 34.7.0
FrostWire for Android 3.0.14: Critical Stability Fixes & Engine Optimization
Just in time for the new year, we are rolling out a vital update for our Android users. FrostWire 3.0.14 (build 768) is now available, and it addresses several critical "day-one" issues introduced with our recent V2 architecture overhaul.
This release focuses on making sure the app starts correctly, downloads reliably, and accurately reports the status of your transfers.
What’s Fixed in Build 768?
🛠 Fixing the "Error" Status Bug
Many users reported that newly started torrents would immediately show an "Error" status even when the download was healthy. We found that the app was occasionally reading from an outdated status cache. We’ve implemented a fix to invalidate that cache immediately upon starting a transfer, ensuring you see the actual download progress instead of a false error.
⚡ Solving Initialization Crashes
We’ve eliminated two major race conditions that occurred during the app's startup sequence:
- Port 0 Binding Failure: Previously, the BitTorrent engine (BTEngine) would sometimes try to start before your settings were loaded, causing it to fail by trying to connect to "Port 0."
- Session Initialization: We’ve ensured the
ConfigurationManagernow blocks and finishes loading preferences before the engine starts, preventing session-related crashes.
🔍 Restoring Search-to-Download Functionality
Following our recent search architecture consolidation, some results from popular sources (like TPB, 1337X, and MagnetDL) weren't being recognized as torrents.
- We have added support for the new
CompositeFileSearchResultinterface. - This ensures that when you click a search result, the download starts immediately as intended.
📈 Maintenance & Core Updates
We have refreshed our core dependencies to ensure maximum compatibility with the latest Android devices:
- yt-dlp Updated to 2025.12.08: Essential for high-speed cloud video downloads.
- Gradle Plugin 8.13.2: Optimized build performance.
- Library Updates: Updated Firebase BOM (v34.7.0), AndroidX ExifInterface (v1.4.2), and SwipeRefreshLayout (v1.2.0).
If you’ve been having trouble with downloads not starting or seeing unexpected errors in your transfer list, this update is highly recommended. Thank you for helping us make FrostWire better by reporting these issues!
Happy New Year and Happy Downloading!
— The FrostWire Team
frostwire-desktop-7.0.2-build-329
frostwire (7.0.2) stable; urgency=high
- Fixes bug where seed counts disappeared from torrent search results wrapped in FileSearchResultUIWrapper
- Improves search result sorting prioritizing keywords, then seeds/popularity and avoiding irrelevant results on top
- Add VPN-Drop protection checkbox to status bar for quick toggle of BitTorrent pause when VPN is disconnected
- VPN-Drop protection setting changes and dialog dismissals now properly update status bar checkbox state
- Extract VPN-Drop protection logic to VPNDropGuard.applyVPNDropProtection() to avoid code duplication
- Cache VPN status in VPNDropGuard to avoid expensive VPNs.isVPNActive() system calls on setting changes
- All VPN-Drop protection operations use BackgroundQueuedExecutor to prevent EDT blocking
- VPN-Drop protection checkbox now compact with smaller font and clickable "VPN" link to info page
- Add VPN-Drop protection check when starting new torrent transfers from search results (button, context menu, and batch download)
- Ensure VPN-Drop guard dialog appears when attempting to start new torrent transfers without active VPN
- Add VPN-Drop protection check when opening torrent files (.torrent files and magnet links from pasted URLs)
- Fix: VPN-Drop guard dialog now properly appears when attempting to download torrents from search results
- Compact UI layout: VPN status indicator and VPN-Drop protection checkbox now use minimal spacing for cleaner appearance
-- FrostWire Team [email protected] Sun, 28 Dec 2025 14:41:00 -0600
FrostWire 7.0.2 Released: Enhanced Privacy with VPN-Drop Protection & Smarter Search
We are excited to announce the release of FrostWire 7.0.2 (Stable) for Windows, macOS, and Linux. This update is a significant milestone for user privacy and search efficiency, introducing a robust "VPN-Drop Protection" system to keep your identity safe while downloading.
Whether you are a casual downloader or a power user, 7.0.2 brings a more responsive, cleaner, and safer experience to your desktop.
🛡️ Stay Protected: New improved VPN-Drop Protection
The headline feature of this release is the VPN-Drop Protection. In the world of BitTorrent, maintaining a secure connection is paramount. We’ve added a fail-safe to ensure your real IP address is never accidentally exposed.
Quick Toggle: You’ll notice a new checkbox in the status bar. This allows you to instantly enable or disable VPN-Drop Protection.
Automatic Pausing: If this setting is on and your VPN disconnects, FrostWire will automatically pause all BitTorrent transfers.
Smart Alerts: FrostWire now checks for an active VPN connection when you start a new download, open a .torrent file, or paste a magnet link. If you aren't protected, a dialog will alert you before the transfer begins.
Performance First: We’ve optimized the logic behind the scenes (using a new VPNDropGuard system) to ensure that checking your VPN status won't lag your computer or freeze the interface.
🔍 Better Search, Faster Results
We’ve overhauled how FrostWire sorts your search results to help you find the highest quality files in less time.
Relevance First: Search results are now prioritized by keyword matches first, followed by seed counts and popularity. This ensures that the most relevant and "healthy" files stay at the top of your list.
Bug Fix: We’ve squashed a bug where seed counts were occasionally disappearing from the search UI. You’ll now have full visibility into the health of every file before you click download.
🎨 Clean & Compact UI
We believe a powerful tool should also be a beautiful one. FrostWire 7.0.2 features a more compact status bar layout. By reducing spacing and using a smaller font for the VPN indicators, we’ve freed up screen real estate while still keeping your vital connection stats front and center.
There is even a handy, clickable "VPN" link in the status bar that takes you directly to information on how to better protect your privacy.
Changelog Highlights:
Improved: Search result sorting (Keyword relevance > Seeds/Popularity).
New: VPN-Drop protection checkbox in the status bar.
New: VPN status checks when starting downloads or opening magnet links.
Fix: Resolved issue with disappearing seed counts in search results.
Optimization: All VPN-related logic moved to background threads to prevent UI blocking.
UI: Minimalist spacing for VPN and status indicators.
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 [email protected] 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...
