Skip to content

Releases: frostwire/frostwire

frostwire-desktop-7.0.1-build-328

07 Dec 22:02

Choose a tag to compare

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

Download FrostWire

frostwire-android-3.0.12-build-766

03 Dec 00:48
07ddee4

Choose a tag to compare

🚀 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...
Read more

frostwire-android-3.0.11-build-765

30 Nov 16:26
ff9fb5f

Choose a tag to compare

🚀 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...
Read more

frostwire-desktop-7.0.0-build-327

23 Nov 03:03
7c6a42d

Choose a tag to compare

image

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...
Read more

frostwire-android-3.0.10-build-764

16 Nov 08:13
c579f8a

Choose a tag to compare

🧱 Architectural & Core Upgrades

Migration to jlibtorrent 2.0.12.5

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

Key New Libtorrent (lt) Features

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

⚙️ FrostWire App-Level Enhancements

New Features

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

Performance Optimizations

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

UI & UX

  • Picasso 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 JobScheduler alarm limit exceptions.
  • Optimized music metadata cleanup and playlist handling in background.

🧠 Code Quality & Refactoring

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

🧩 Stability & Crash Fixes

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

🔧 Libtorrent 2.0 Highlights (Technical Breakdown)

Major Improvements

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

I2P & Privacy

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

🧾 Summary

FrostWire 3 marks a major modernization leap — moving to:

  • BitTorrent v2 ecosystem,
  • 16KB page-aware Android binaries,
  • Ad-free user experience,
  • Fully optimized search and transfer performance.

This release focuses heavily on speed, stability, and code hygiene:

  • Native layer rewritten in C++20,
  • App layer streamlined for Android 14+,
  • Improved resource handling,
  • Significant performance wins in networking, searching, and I/O.

FrostWire 3.0.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...
Read more

frostwire-android-3.0.9-build-763

28 Oct 00:59
5b4577c

Choose a tag to compare

image

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++2a on Windows/MinGW).
  • Boost 1.88.0, OpenSSL 3.5.2, and SWIG 4.3.1 upgrades for improved compatibility and security.
  • Android NDK r28c (16KB page support) → future-proofed for Android 14+ devices.
  • JDK 17 build target with full JAVA_17 compatibility.
  • Mavenized jlibtorrent packages (com.frostwire:jlibtorrent) for easier integration.

Key New Libtorrent (lt) Features

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

⚙️ FrostWire App-Level Enhancements

New Features

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

Performance Optimizations

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

UI & UX

  • Picasso 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 JobScheduler alarm limit exceptions.
  • Optimized music metadata cleanup and playlist handling in background.

🧠 Code Quality & Refactoring

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

🧩 Stability & Crash Fixes

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

🧰 Library & Dependency Upgrades

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

🔧 Libtorrent 2.0 Highlights (Technical Breakdown)

Major Improvements

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

I2P & Privacy

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

🧾 Summary

FrostWire 3 marks a major modernization leap — moving to:

  • BitTorrent v2 ecosystem,
  • 16KB page-aware Android binaries,
  • Ad-free user experience,
  • Fully optimized search and transfer performance.

This release focuses heavily on speed, stability, and code hygiene:

  • Native layer rewritten in C++20,
  • App layer streamlined for Android 14+,
  • Improved resource handling,
  • Significant performance wins in networking, searching, and I/O.

FrostWire 3.0.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...
Read more

frostwire-android-3.0.8-build-762

20 Oct 17:13
538664b

Choose a tag to compare

image

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++2a on Windows/MinGW).
  • Boost 1.88.0, OpenSSL 3.5.2, and SWIG 4.3.1 upgrades for improved compatibility and security.
  • Android NDK r28c (16KB page support) → future-proofed for Android 14+ devices.
  • JDK 17 build target with full JAVA_17 compatibility.
  • Mavenized jlibtorrent packages (com.frostwire:jlibtorrent) for easier integration.

Key New Libtorrent (lt) Features

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

⚙️ FrostWire App-Level Enhancements

New Features

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

Performance Optimizations

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

UI & UX

  • Picasso 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 JobScheduler alarm limit exceptions.
  • Optimized music metadata cleanup and playlist handling in background.

🧠 Code Quality & Refactoring

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

🧩 Stability & Crash Fixes

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

🧰 Library & Dependency Upgrades

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

🔧 Libtorrent 2.0 Highlights (Technical Breakdown)

Major Improvements

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

I2P & Privacy

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

🧾 Summary

FrostWire 3 marks a major modernization leap — moving to:

  • BitTorrent v2 ecosystem,
  • 16KB page-aware Android binaries,
  • Ad-free user experience,
  • Fully optimized search and transfer performance.

This release focuses heavily on speed, stability, and code hygiene:

  • Native layer rewritten in C++20,
  • App layer streamlined for Android 14+,
  • Improved resource handling,
  • Significant performance wins in networking, searching, and I/O.

FrostWire 3.0.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...
Read more

frostwire-android-3.0.7-build-761

16 Oct 18:38
56e160d

Choose a tag to compare

Pre-release
image

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++2a on Windows/MinGW).
  • Boost 1.88.0, OpenSSL 3.5.2, and SWIG 4.3.1 upgrades for improved compatibility and security.
  • Android NDK r28c (16KB page support) → future-proofed for Android 14+ devices.
  • JDK 17 build target with full JAVA_17 compatibility.
  • Mavenized jlibtorrent packages (com.frostwire:jlibtorrent) for easier integration.

Key New Libtorrent (lt) Features

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

⚙️ FrostWire App-Level Enhancements

New Features

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

Performance Optimizations

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

UI & UX

  • Picasso 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 JobScheduler alarm limit exceptions.
  • Optimized music metadata cleanup and playlist handling in background.

🧠 Code Quality & Refactoring

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

🧩 Stability & Crash Fixes

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

🧰 Library & Dependency Upgrades

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

🔧 Libtorrent 2.0 Highlights (Technical Breakdown)

Major Improvements

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

I2P & Privacy

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

🧾 Summary

FrostWire 3 marks a major modernization leap — moving to:

  • BitTorrent v2 ecosystem,
  • 16KB page-aware Android binaries,
  • Ad-free user experience,
  • Fully optimized search and transfer performance.

This release focuses heavily on speed, stability, and code hygiene:

  • Native layer rewritten in C++20,
  • App layer streamlined for Android 14+,
  • Improved resource handling,
  • Significant performance wins in networking, searching, and I/O.

FrostWire 3.0.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:...
Read more

frostwire-android-3.0.6-build-760

16 Oct 12:07
6cdcac0

Choose a tag to compare

Pre-release

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

image

FrostWire 3.0.6 (Build 760) — Comprehensive Change Report

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


🧱 Architectural & Core Upgrades

Migration to jlibtorrent 2.0.12.5

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

Key New Libtorrent (lt) Features

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

⚙️ FrostWire App-Level Enhancements

New Features

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

Performance Optimizations

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

UI & UX

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

🧠 Code Quality & Refactoring

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

🧩 Stability & Crash Fixes

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

🧰 Library & Dependency Upgrades

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

🔧 Libtorrent 2.0 Highlights (Technical Breakdown)

Major Improvements

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

I2P & Privacy

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

🧾 Summary

FrostWire 3 marks a major modernization leap — moving to:

  • BitTorrent v2 ecosystem,
  • 16KB page-aware Android binaries,
  • Ad-free user experience,
  • Fully optimized search and transfer performance.

This release focuses heavily on speed, stability, and code hygiene:

  • Native layer rewritten in C++20,
  • App layer streamlined for Android 14+,
  • Improved resource handling,
  • Significant performance wins in networking, searching, and I/O.

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

FrostWire 3.0.6 build 760 OCT/16/2025

- new:Powered by jlibtorrent 2.0.12.5 with bittorrent v2 protocol support with hundreds of bug fixes and performance improvements
 - new:Knaben search performer, a new torrent search source
 - new:TorrentCSV search performer, a new torrent search source
 - new:Settings > Torrent Settings > Incoming Connection Port Range selection
 - new:Seed finished HTTP transfers if seeding is enabled (automatically creates torrent of finished download like on desktop)
 - new:No more third party ads or advertising tracking of any kind. Only frostwire support requests, vpn suggestions and promotional free downloads.
 - yt_dlp-2025.09.26
 - replaced:Picasso for Coil image loading library
 - removed:Torlock search performer (old site is down, new site is malicious)
 - freeze:ensure MusicUtils.removeFromPlaylist ContentResolver activity is in the background
 - freeze:sorting through too many results could cause an ANR when cleaning up titles
 - freeze:ANR in MusicPlaybackService.setDataSource
 - freeze:ANR in MusicPlaybackService.playFDs
 - fix:logic bug in PerformersHelper.countMatchedTokens(), matched tokens were not counted correctly
 - fix:ForegroundServiceStartNotAllowedException by adding foreground check and error handling
 - fix:Android 14+ ForegroundServiceStartNotAllowedException in MusicPlaybackService
 - fix:Android JobScheduler alarm limit exceeded crashes by configuring WorkManager
 - fix:ClassCastException in SearchResultListAdapter OnLinkClickListener
 - fix:HandlerDispatcher NullPointerException crashes in Picasso image loading (removed on build 760)
 - freeze:in playFDs
 - freeze:in MusicPlaybackService.setDataSource
 - crash:NPE in ImageFetcher.loadCurrentArtwork()
 - improvement:PerformersHelper.sanitize() 8.8x speed gains in title normalization by not using a regex and instead simple string replacements
 - improvement:Optimize stackBlur() with array pooling to r...
Read more

frostwire-android-3.0.5-build-759

12 Oct 13:32
82b74d8

Choose a tag to compare

Pre-release
image

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++2a on Windows/MinGW).
  • Boost 1.88.0, OpenSSL 3.5.2, and SWIG 4.3.1 upgrades for improved compatibility and security.
  • Android NDK r28c (16KB page support) → future-proofed for Android 14+ devices.
  • JDK 17 build target with full JAVA_17 compatibility.
  • Mavenized jlibtorrent packages (com.frostwire:jlibtorrent) for easier integration.

Key New Libtorrent (lt) Features

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

⚙️ FrostWire App-Level Enhancements

New Features

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

Performance Optimizations

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

UI & UX

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

🧠 Code Quality & Refactoring

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

🧩 Stability & Crash Fixes

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

🧰 Library & Dependency Upgrades

Library Version
org.jetbrains:annotations 26.0.2-1
androidx.appcompat:appcompat 1.7.1
androidx.browser:browser 1.9.0
androidx.core:core 1.17.0
androidx.exifinterface:exifinterface 1.4.1
androidx.lifecycle:lifecycle-viewmodel-ktx 2.9.4
androidx.work:work-runtime-ktx 2.10.4
com.google.android.material:material 1.13.0
com.google.code.gson:gson 2.13.2
com.google.re2j:re2j 1.8
com.squareup.okhttp3:okhttp 5.1.0
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, and hash_picker fixes.
  • Removed deprecated APIs: lazy_entry, save_state(), load_state(), bittyrant.
  • Dropped iconv dependency, lighter build footprint.

I2P & Privacy

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

🧾 Summary

FrostWire 3 marks a major modernization leap — moving to:

  • BitTorrent v2 ecosystem,
  • 16KB page-aware Android binaries,
  • Ad-free user experience,
  • Fully optimized search and transfer performance.

This release focuses heavily on speed, stability, and code hygiene:

  • Native layer rewritten in C++20,
  • App layer streamlined for Android 14+,
  • Improved resource handling,
  • Significant performance wins in networking, searching, and I/O.

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

FrostWire 3.0.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...
Read more