Skip to content

Releases: frostwire/frostwire

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

frostwire-android-3.0.4-build-758

11 Oct 20:09
f107924

Choose a tag to compare

Pre-release
image

FrostWire 3.0.4 (Build 758) — Comprehensive Change Report

Release Date: October 11, 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.4 Build 758
The most stable, efficient, and privacy-respecting FrostWire release to date.

FrostWire 3.0.4 build 758 OCT/11/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

frostwire-android-3.0.3-build-757

05 Oct 02:17
0e920b8

Choose a tag to compare

Pre-release

FrostWire 3.0.3 build 757 OCT/04/2025
image

  • 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)
  • yt_dlp-2025.09.23
  • 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
  • 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
  • speed-up:reuse OkHttpClient instances to unlock connection pooling and reduce GC pressure
  • speed-up:Replace global Hashtable throttling with lock-free ConcurrentHashMap in TaskThrottle
  • speed-up:Cache torrent-search date parsers to eliminate per-result SimpleDateFormat allocations
  • speed-up:Use buffered I/O for large transfers in OkHttpClientWrapper.save and ZipUtils.unzip. Up to 96% CPU savings in sys write calls, 30-50% reduction in CPU during I/O operations, search results should come out a lot faster
  • crash:ConcurrentModificationException in Ssl$FWHostnameVerifier
  • fix:Picasso HandlerDispatcher NullPointerException on network state changes when app is backgrounded by keeping Picasso alive instead of shutting down
  • org.jetbrains:annotations:26.0.2-1
  • androidx.appcompat:appcompat:1.7.1
  • androidx.browser:browser:1.9.0
  • com.chaquo.python:gradle:16.1.0, now with linked 16KB mode compatible with android compile sdk 36
  • org.codehaus.groovy:groovy-all:3.0.25
  • com.squareup.picasso3:picasso:3.0.0-alpha06 and refactor of ImageLoader to use it
  • com.google.gms:google-services:4.4.3
  • com.google.firebase:firebase-crashlytics-gradle:3.0.6
  • androidx.core:core:1.17.0
  • androidx.exifinterface:exifinterface:1.4.1
  • androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.4
  • com.google.android.material:material:1.13.0
  • com.google.code.gson:gson:2.13.2
  • com.google.re2j:re2j:1.8
  • com.squareup.okhttp3:okhttp:5.1.0
  • androidx.work:work-runtime-ktx:2.10.4
  • com.google.firebase:firebase-bom:34.3.0
  • com.applovin:applovin-sdk:13.4.0
  • com.applovin.mediation:unityads-adapter:4.16.1.0
  • Maintenance:all license headers are consistent with GPL 3.0
  • jlibtorrent:libraries are now compiled with C++20 (ming/windows with C++2a which is the same)
  • jlibtorrent:g++-9 upgraded to g++-11 for linux build
  • jlibtorrent:new Sha256Hash::swig()
  • jlibtorrent:new SessionManager::find(Sha256Hash) and SessionManager::find(TorrentInfo) methods
  • jlibtorrent:built with android NDK r28c with 16K page size support
  • Android 64-bit binaries are compiled to have 16KB max-page-size
  • jlibtorrent:New com.frostwire:jlibtorrent- maven packages for easier integration with gradle/maven
  • jlibtorrent:new torrent_handle::get_resume_data() : add_torrent_params
  • jlibtorrent:new torrent_handle::get_resume_data(resume_data_flags_t flags) : add_torrent_params
  • jlibtorrent:new settings_pack.int_types i2p_inbound_length_variance
  • jlibtorrent:new settings_pack.int_types i2p_outbound_length_variance
  • jlibtorrent:Jar built with JDK 17 - JAVA_17 compatibility
  • jlibtorrentBoost 1.88.0 upgrade
  • jlibtorrent:OpenSSL 3.5.2 upgrade (from 1.1.1t)
  • jlibtorrent:Upgraded SWIG to 4.3.1
  • jlibtorrent:Gradle 9.0.0
  • dev: junit upgraded from 4.13.1 -> 4.13.2
  • lt:add option to send host header in HTTP proxy CONNECT command
  • lt:cache DNS failures for a shorter time
  • lt:file_renamed_alert is always posted, regardless of alert mask
  • lt:add feature to request resume data synchronously
  • lt:don't leak file descriptors to child processes (O_CLOEXEC)
  • lt:optimize the utp resend
  • lt:optimize tracker announcements
  • fix handling of invalid filenames
  • add support for I2CP inbound.lengthVariance and outbound.lengthVariance tunnel settings
  • lt: validate add_torrent_params::save_path at run-time
  • lt: use stricter rules for what filenames are valid on Android
  • lt: fix applying IP filter to DHT traffic (HanabishiRecca)
  • lt: fix race condition when cancelling requests after becoming a seed
  • lt: fix performance bug in the file pool, evicting MRU instead of LRU (HanabishiRecca)
  • lt: fix bug where file_progress could sometimes be reported as >100%
  • jlibtorrent:BDecodeNode: hasList, hasDict, hasString, hasInt, getList, getDict, getString, getInt
  • lt:limit piece size in torrent creator
  • lt:don't hint FADV_RANDOM on posix systems. May improve seeding performance
  • lt:allow boost connect while checking resume data if no_verify_files flag is set
  • lt:fix BEP-40 peer priority for IPv6
  • lt:fix file pre-allocation when changing file priority (HanabishiRecca)
  • jlibtorrent:SWIG interface files have been modularized for better maintainability and readability
  • jlibtorrent:Added missing alert types
  • jlibtorrent:Introduced typed_bitfield template
  • jlibtorrent:Operator renaming for Java compatibility
  • jlibtorrent:Included boost_system_error_code.i
  • jlibtorrent:Added prepare-macos.sh script
  • jlibtorrent:Updated run-swig.sh script
  • jlibtorrent:Set TORRENT_ABI_VERSION=4
  • jlibtorrent:Libtorrent updated to RC_2_0 (rev:2ab8fedabb7716947edc77958da6d0b5e1040df9)
  • jlibtorrent:Android NDK r26d (LTS) upgrade (from r25c)
  • jlibtorrent:Added --swig-only and --build-only options to swig/build scripts
  • jlibtorrent:Added prepare-macos.sh script for macOS build setup
  • jlibtorrent:Updated run-swig.sh script for improved SWIG processing
  • jlibtorrent:Enhanced exception handling in SWIG interfaces
  • jlibtorrent:Fixed issues in file_storage.hpp and ip_filter.hpp
  • jlibtorrent:Adjusted build flags and macros for Boost and libtorrent compatibility
  • jlibtorrent:Enabled SWIG directors for specific classes
  • lt:fix uTP issue where closing the connection could corrupt the payload
  • lt:apply DSCP/TOS to sockets before initiating the TCP connection
  • lt:assume copy_file_range() exists on linux (unless old glibc)
  • lt:fix issue where set_piece_deadline() did not correctly post read_piece_alert
  • lt:fix integer overflow in piece picker
  • lt:torrent_status::num_pieces counts pieces passed hash check, as documented
  • lt:check settings_pack::max_out_request_queue before performance alert
  • lt:allow on_unknown_torrent method in the absence of active torrents (new plugin feature added)
  • lt:add feature to async_move_storage() to not move files
  • lt:fix reject resume data if it contains mismatching info hashes
  • lt:fix clear the candidate_cache when clear peer_list
  • lt:fix missing python converter for dht::announce_flags_t
  • lt:fix issue with web seed connections when they close and re-open
  • lt:fallocate() not supported is not a fatal error
  • lt:fix proxying of IPv6 connections via IPv4 proxy
  • lt:treat CGNAT address range as local IPs
  • lt:add stricter checking of piece layers when loading torrents
  • lt:add stricter checking of v1 and v2 hashes being consistent
  • lt:cache failed DNS lookups as well as successful ones
  • lt:add an i2p torrent state to control interactions with clear swarms
  • lt:fix i2p SAM protocol parsing of quoted messages
  • lt:expose i2p peer destination in peer_info
  • lt:fix i2p tracker announces
  • lt:fix issue with read_piece() stopping torrent on pieces not yet downloaded
  • lt:improve handling of allow_i2p_mixed setting to work for magnet links
  • lt:fix web seed request for renamed single-file torrents
  • lt:fix issue where web seeds could disappear from resume data
  • lt:extend save_resume with additional conditional flags
  • lt:fix issue with retrying trackers in tiers > 0
  • lt:fix last_upload and last_download resume data fields to use posix time
  • lt:improve error messages for no_connect_privileged_ports, by untangle it from the port filter
  • lt:fix I2P issue introduced in 2.0.0
  • lt:add async tracker status query, post_trackers()
  • lt:add async torrent status query, post_status()
  • lt:support loading version 2 of resume data format
  • lt:fix issue with odd piece sizes
  • lt:add async piece availability query, post_piece_availability()
  • lt:add async download queue query, post_download_queue()
  • lt:add async file_progress query, post_file_progress()
  • lt:add async peer_info query, post_peer_info()
  • lt:fix uTP streams timing out instead of closing cleanly
  • lt:add write_torrent_file_buf() overload ...
Read more

frostwire-android-3.0.2-build-756

04 Oct 15:30
ca444bf

Choose a tag to compare

Pre-release

FrostWire 3.0.2 build 756 OCT/03/2025
image

  • 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)
  • yt_dlp-2025.09.23
  • 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
  • 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
  • speed-up:reuse OkHttpClient instances to unlock connection pooling and reduce GC pressure
  • speed-up:Replace global Hashtable throttling with lock-free ConcurrentHashMap in TaskThrottle
  • speed-up:Cache torrent-search date parsers to eliminate per-result SimpleDateFormat allocations
  • speed-up:Use buffered I/O for large transfers in OkHttpClientWrapper.save and ZipUtils.unzip. Up to 96% CPU savings in sys write calls, 30-50% reduction in CPU during I/O operations, search results should come out a lot faster
  • crash:ConcurrentModificationException in Ssl$FWHostnameVerifier
  • fix:Picasso HandlerDispatcher NullPointerException on network state changes when app is backgrounded by keeping Picasso alive instead of shutting down
  • org.jetbrains:annotations:26.0.2-1
  • androidx.appcompat:appcompat:1.7.1
  • androidx.browser:browser:1.9.0
  • com.chaquo.python:gradle:16.1.0, now with linked 16KB mode compatible with android compile sdk 36
  • org.codehaus.groovy:groovy-all:3.0.25
  • com.squareup.picasso3:picasso:3.0.0-alpha06 and refactor of ImageLoader to use it
  • com.google.gms:google-services:4.4.3
  • com.google.firebase:firebase-crashlytics-gradle:3.0.6
  • androidx.core:core:1.17.0
  • androidx.exifinterface:exifinterface:1.4.1
  • androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.4
  • com.google.android.material:material:1.13.0
  • com.google.code.gson:gson:2.13.2
  • com.google.re2j:re2j:1.8
  • com.squareup.okhttp3:okhttp:5.1.0
  • androidx.work:work-runtime-ktx:2.10.4
  • com.google.firebase:firebase-bom:34.3.0
  • com.applovin:applovin-sdk:13.4.0
  • com.applovin.mediation:unityads-adapter:4.16.1.0
  • Maintenance:all license headers are consistent with GPL 3.0
  • jlibtorrent:libraries are now compiled with C++20 (ming/windows with C++2a which is the same)
  • jlibtorrent:g++-9 upgraded to g++-11 for linux build
  • jlibtorrent:new Sha256Hash::swig()
  • jlibtorrent:new SessionManager::find(Sha256Hash) and SessionManager::find(TorrentInfo) methods
  • jlibtorrent:built with android NDK r28c with 16K page size support
  • Android 64-bit binaries are compiled to have 16KB max-page-size
  • jlibtorrent:New com.frostwire:jlibtorrent- maven packages for easier integration with gradle/maven
  • jlibtorrent:new torrent_handle::get_resume_data() : add_torrent_params
  • jlibtorrent:new torrent_handle::get_resume_data(resume_data_flags_t flags) : add_torrent_params
  • jlibtorrent:new settings_pack.int_types i2p_inbound_length_variance
  • jlibtorrent:new settings_pack.int_types i2p_outbound_length_variance
  • jlibtorrent:Jar built with JDK 17 - JAVA_17 compatibility
  • jlibtorrentBoost 1.88.0 upgrade
  • jlibtorrent:OpenSSL 3.5.2 upgrade (from 1.1.1t)
  • jlibtorrent:Upgraded SWIG to 4.3.1
  • jlibtorrent:Gradle 9.0.0
  • dev: junit upgraded from 4.13.1 -> 4.13.2
  • lt:add option to send host header in HTTP proxy CONNECT command
  • lt:cache DNS failures for a shorter time
  • lt:file_renamed_alert is always posted, regardless of alert mask
  • lt:add feature to request resume data synchronously
  • lt:don't leak file descriptors to child processes (O_CLOEXEC)
  • lt:optimize the utp resend
  • lt:optimize tracker announcements
  • fix handling of invalid filenames
  • add support for I2CP inbound.lengthVariance and outbound.lengthVariance tunnel settings
  • lt: validate add_torrent_params::save_path at run-time
  • lt: use stricter rules for what filenames are valid on Android
  • lt: fix applying IP filter to DHT traffic (HanabishiRecca)
  • lt: fix race condition when cancelling requests after becoming a seed
  • lt: fix performance bug in the file pool, evicting MRU instead of LRU (HanabishiRecca)
  • lt: fix bug where file_progress could sometimes be reported as >100%
  • jlibtorrent:BDecodeNode: hasList, hasDict, hasString, hasInt, getList, getDict, getString, getInt
  • lt:limit piece size in torrent creator
  • lt:don't hint FADV_RANDOM on posix systems. May improve seeding performance
  • lt:allow boost connect while checking resume data if no_verify_files flag is set
  • lt:fix BEP-40 peer priority for IPv6
  • lt:fix file pre-allocation when changing file priority (HanabishiRecca)
  • jlibtorrent:SWIG interface files have been modularized for better maintainability and readability
  • jlibtorrent:Added missing alert types
  • jlibtorrent:Introduced typed_bitfield template
  • jlibtorrent:Operator renaming for Java compatibility
  • jlibtorrent:Included boost_system_error_code.i
  • jlibtorrent:Added prepare-macos.sh script
  • jlibtorrent:Updated run-swig.sh script
  • jlibtorrent:Set TORRENT_ABI_VERSION=4
  • jlibtorrent:Libtorrent updated to RC_2_0 (rev:2ab8fedabb7716947edc77958da6d0b5e1040df9)
  • jlibtorrent:Android NDK r26d (LTS) upgrade (from r25c)
  • jlibtorrent:Added --swig-only and --build-only options to swig/build scripts
  • jlibtorrent:Added prepare-macos.sh script for macOS build setup
  • jlibtorrent:Updated run-swig.sh script for improved SWIG processing
  • jlibtorrent:Enhanced exception handling in SWIG interfaces
  • jlibtorrent:Fixed issues in file_storage.hpp and ip_filter.hpp
  • jlibtorrent:Adjusted build flags and macros for Boost and libtorrent compatibility
  • jlibtorrent:Enabled SWIG directors for specific classes
  • lt:fix uTP issue where closing the connection could corrupt the payload
  • lt:apply DSCP/TOS to sockets before initiating the TCP connection
  • lt:assume copy_file_range() exists on linux (unless old glibc)
  • lt:fix issue where set_piece_deadline() did not correctly post read_piece_alert
  • lt:fix integer overflow in piece picker
  • lt:torrent_status::num_pieces counts pieces passed hash check, as documented
  • lt:check settings_pack::max_out_request_queue before performance alert
  • lt:allow on_unknown_torrent method in the absence of active torrents (new plugin feature added)
  • lt:add feature to async_move_storage() to not move files
  • lt:fix reject resume data if it contains mismatching info hashes
  • lt:fix clear the candidate_cache when clear peer_list
  • lt:fix missing python converter for dht::announce_flags_t
  • lt:fix issue with web seed connections when they close and re-open
  • lt:fallocate() not supported is not a fatal error
  • lt:fix proxying of IPv6 connections via IPv4 proxy
  • lt:treat CGNAT address range as local IPs
  • lt:add stricter checking of piece layers when loading torrents
  • lt:add stricter checking of v1 and v2 hashes being consistent
  • lt:cache failed DNS lookups as well as successful ones
  • lt:add an i2p torrent state to control interactions with clear swarms
  • lt:fix i2p SAM protocol parsing of quoted messages
  • lt:expose i2p peer destination in peer_info
  • lt:fix i2p tracker announces
  • lt:fix issue with read_piece() stopping torrent on pieces not yet downloaded
  • lt:improve handling of allow_i2p_mixed setting to work for magnet links
  • lt:fix web seed request for renamed single-file torrents
  • lt:fix issue where web seeds could disappear from resume data
  • lt:extend save_resume with additional conditional flags
  • lt:fix issue with retrying trackers in tiers > 0
  • lt:fix last_upload and last_download resume data fields to use posix time
  • lt:improve error messages for no_connect_privileged_ports, by untangle it from the port filter
  • lt:fix I2P issue introduced in 2.0.0
  • lt:add async tracker status query, post_trackers()
  • lt:add async torrent status query, post_status()
  • lt:support loading version 2 of resume data format
  • lt:fix issue with odd piece sizes
  • lt:add async piece availability query, post_piece_availability()
  • lt:add async download queue query, post_download_queue()
  • lt:add async file_progress query, post_file_progress()
  • lt:add async peer_info query, post_peer_info()
  • lt:fix uTP streams timing out instead of closing cleanly
  • lt:add write_torrent_file_buf() overload ...
Read more

frostwire-android-3.0.0-build-754

30 Sep 13:33
15761ab

Choose a tag to compare

Pre-release

FrostWire ORINOCO 3.0.0 build 754 SEP/28/2025

orinoco

  • 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)
  • yt_dlp-2025.09.23
  • 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 ImagfeFetcher.loadCurrentArtwork()
  • improvement: PerformersHelper.sanitize() 8.8x speed gains in title normalization by not using a regex and instead simple string replacements
  • Avoid possible context leak on EngineBroadcastReceiver
  • maintenance: all license headers are GPL 3.0
  • maintenance: archive.org search fixed
  • maintenance: glotorrents search fixed
  • org.jetbrains:annotations:26.0.2-1
  • androidx.appcompat:appcompat:1.7.1
  • androidx.browser:browser:1.9.0
  • com.chaquo.python:gradle:16.1.0, now with linked 16KB mode compatible with android compile sdk 36
  • org.codehaus.groovy:groovy-all:3.0.25
  • com.squareup.picasso3:picasso:3.0.0-alpha06 and refactor of ImageLoader to use it
  • com.google.gms:google-services:4.4.3
  • com.google.firebase:firebase-crashlytics-gradle:3.0.6
  • androidx.core:core:1.17.0
  • androidx.exifinterface:exifinterface:1.4.1
  • androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.4
  • com.google.android.material:material:1.13.0
  • com.google.code.gson:gson:2.13.2
  • com.google.re2j:re2j:1.8
  • com.squareup.okhttp3:okhttp:5.1.0
  • androidx.work:work-runtime-ktx:2.10.4
  • com.google.firebase:firebase-bom:34.3.0
  • com.applovin:applovin-sdk:13.4.0
  • com.applovin.mediation:unityads-adapter:4.16.1.0
  • Maintenance:all license headers are consistent with GPL 3.0
  • jlibtorrent:libraries are now compiled with C++20 (ming/windows with C++2a which is the same)
  • jlibtorrent:g++-9 upgraded to g++-11 for linux build
  • jlibtorrent:new Sha256Hash::swig()
  • jlibtorrent:new SessionManager::find(Sha256Hash) and SessionManager::find(TorrentInfo) methods
  • jlibtorrent:built with android NDK r28c with 16K page size support
  • Android 64-bit binaries are compiled to have 16KB max-page-size
  • jlibtorrent:New com.frostwire:jlibtorrent- maven packages for easier integration with gradle/maven
  • jlibtorrent:new torrent_handle::get_resume_data() : add_torrent_params
  • jlibtorrent:new torrent_handle::get_resume_data(resume_data_flags_t flags) : add_torrent_params
  • jlibtorrent:new settings_pack.int_types i2p_inbound_length_variance
  • jlibtorrent:new settings_pack.int_types i2p_outbound_length_variance
  • jlibtorrent:Jar built with JDK 17 - JAVA_17 compatibility
  • jlibtorrentBoost 1.88.0 upgrade
  • jlibtorrent:OpenSSL 3.5.2 upgrade (from 1.1.1t)
  • jlibtorrent:Upgraded SWIG to 4.3.1
  • jlibtorrent:Gradle 9.0.0
  • dev: junit upgraded from 4.13.1 -> 4.13.2
  • lt:add option to send host header in HTTP proxy CONNECT command
  • lt:cache DNS failures for a shorter time
  • lt:file_renamed_alert is always posted, regardless of alert mask
  • lt:add feature to request resume data synchronously
  • lt:don't leak file descriptors to child processes (O_CLOEXEC)
  • lt:optimize the utp resend
  • lt:optimize tracker announcements
  • fix handling of invalid filenames
  • add support for I2CP inbound.lengthVariance and outbound.lengthVariance tunnel settings
  • lt: validate add_torrent_params::save_path at run-time
  • lt: use stricter rules for what filenames are valid on Android
  • lt: fix applying IP filter to DHT traffic (HanabishiRecca)
  • lt: fix race condition when cancelling requests after becoming a seed
  • lt: fix performance bug in the file pool, evicting MRU instead of LRU (HanabishiRecca)
  • lt: fix bug where file_progress could sometimes be reported as >100%
  • jlibtorrent:BDecodeNode: hasList, hasDict, hasString, hasInt, getList, getDict, getString, getInt
  • lt:limit piece size in torrent creator
  • lt:don't hint FADV_RANDOM on posix systems. May improve seeding performance
  • lt:allow boost connect while checking resume data if no_verify_files flag is set
  • lt:fix BEP-40 peer priority for IPv6
  • lt:fix file pre-allocation when changing file priority (HanabishiRecca)
  • jlibtorrent:SWIG interface files have been modularized for better maintainability and readability
  • jlibtorrent:Added missing alert types
  • jlibtorrent:Introduced typed_bitfield template
  • jlibtorrent:Operator renaming for Java compatibility
  • jlibtorrent:Included boost_system_error_code.i
  • jlibtorrent:Added prepare-macos.sh script
  • jlibtorrent:Updated run-swig.sh script
  • jlibtorrent:Set TORRENT_ABI_VERSION=4
  • jlibtorrent:Libtorrent updated to RC_2_0 (rev:2ab8fedabb7716947edc77958da6d0b5e1040df9)
  • jlibtorrent:Android NDK r26d (LTS) upgrade (from r25c)
  • jlibtorrent:Added --swig-only and --build-only options to swig/build scripts
  • jlibtorrent:Added prepare-macos.sh script for macOS build setup
  • jlibtorrent:Updated run-swig.sh script for improved SWIG processing
  • jlibtorrent:Enhanced exception handling in SWIG interfaces
  • jlibtorrent:Fixed issues in file_storage.hpp and ip_filter.hpp
  • jlibtorrent:Adjusted build flags and macros for Boost and libtorrent compatibility
  • jlibtorrent:Enabled SWIG directors for specific classes
  • lt:fix uTP issue where closing the connection could corrupt the payload
  • lt:apply DSCP/TOS to sockets before initiating the TCP connection
  • lt:assume copy_file_range() exists on linux (unless old glibc)
  • lt:fix issue where set_piece_deadline() did not correctly post read_piece_alert
  • lt:fix integer overflow in piece picker
  • lt:torrent_status::num_pieces counts pieces passed hash check, as documented
  • lt:check settings_pack::max_out_request_queue before performance alert
  • lt:allow on_unknown_torrent method in the absence of active torrents (new plugin feature added)
  • lt:add feature to async_move_storage() to not move files
  • lt:fix reject resume data if it contains mismatching info hashes
  • lt:fix clear the candidate_cache when clear peer_list
  • lt:fix missing python converter for dht::announce_flags_t
  • lt:fix issue with web seed connections when they close and re-open
  • lt:fallocate() not supported is not a fatal error
  • lt:fix proxying of IPv6 connections via IPv4 proxy
  • lt:treat CGNAT address range as local IPs
  • lt:add stricter checking of piece layers when loading torrents
  • lt:add stricter checking of v1 and v2 hashes being consistent
  • lt:cache failed DNS lookups as well as successful ones
  • lt:add an i2p torrent state to control interactions with clear swarms
  • lt:fix i2p SAM protocol parsing of quoted messages
  • lt:expose i2p peer destination in peer_info
  • lt:fix i2p tracker announces
  • lt:fix issue with read_piece() stopping torrent on pieces not yet downloaded
  • lt:improve handling of allow_i2p_mixed setting to work for magnet links
  • lt:fix web seed request for renamed single-file torrents
  • lt:fix issue where web seeds could disappear from resume data
  • lt:extend save_resume with additional conditional flags
  • lt:fix issue with retrying trackers in tiers > 0
  • lt:fix last_upload and last_download resume data fields to use posix time
  • lt:improve error messages for no_connect_privileged_ports, by untangle it from the port filter
  • lt:fix I2P issue introduced in 2.0.0
  • lt:add async tracker status query, post_trackers()
  • lt:add async torrent status query, post_status()
  • lt:support loading version 2 of resume data format
  • lt:fix issue with odd piece sizes
  • lt:add async piece availability query, post_piece_availability()
  • lt:add async download queue query, post_download_queue()
  • lt:add async file_progress query, post_file_progress()
  • lt:add async peer_info query, post_peer_info()
  • lt:fix uTP streams timing out instead of closing cleanly
  • lt:add write_torrent_file_buf() overload for generating .torrent files
  • lt:add create_torrent::generate_buf() function to generate into a buffer
  • lt:fix copy_file when the file ends with a sparse region
  • lt:uTP performance, fix packet loss when sending is stalled
  • lt:fix trackers being stuck after session pause/resume
  • lt:fix bug in hash_picker with empty files
  • lt:uTP performance, prevent premature timeouts/resends
  • lt:add option to not memory map files below a certain size
  • lt:settings_pack now returns default values when queried for missing settings
  • lt:fix copy_file fall-back when SEEK_HOL/SEEK_DATA is not supported
  • lt:improve error reporting from file copy and move
  • lt:tweak pad file placement to match reference implementation (tail-padding)
  • lt:uTP performance, more lenient nagle's algorithm to always allow one outstanding u...
Read more

frostwire-desktop-6.14.0-build-326

14 May 01:19
2c3c675

Choose a tag to compare

frostwire (6.14.0) stable; urgency=high

  • Telluride Video Downloader build 38
  • Filter out search results with no keyword matches, considers fuzzy matches
  • New app_splash image
  • FrostWire 6.14.0 build 326
  • Make download button on slide panel transparent
  • Black background behind author on slide controls overlay
  • Don't paint search tabbed pane background on default theme either
  • Settings button on status bar (StatusLine) now looks good
  • Dark theme fixes for delete files dialog
  • Dark theme for search tab headers, refactor checking what theme is on
  • Robust runtime theme switch & readable dialogs in FlatLaf dark mode
  • Ignore some exceptions while updating window hierarchy on theme change
  • General UI cleanup
  • Background color for main searchboxes fixed when focused
  • Refine dark theme UI, panel and textfield backgrounds darker
  • Icon brightening support and clean-up sweep
  • LibraryExplorer Tree background is darker for dark theme, speaker icon is brightened
  • TransferDetailGeneral: support dark theme backgrounds and text
  • Make transfer-detail pieces & tables use dark theme background
  • Dark theme: unify table, panel and toggle-button backgrounds
  • Actions for transfers, library and search had icons brightened in dark mode
  • Transfer seeding renderer icon brightened for dark mode
  • Enhanced icon repainting capabilities for dark mode
  • ThemeMediator: Improved handling of table row alternate colors
  • DefaultTableBevelledCellRenderer: Don't paint border when not selected, removed useless isSelected property
  • Source renderer fix
  • Fix progress bar renderer to preserve row striping and selection highlights
  • FWAbstractJPanelTableCellRenderer: Don't paint beveled border
  • LibraryFilesTableMediator cleanup
  • LibraryFilesTableDataLine cleanup
  • MediaPlayerComponent cleanup, layout uses all vertical space available
  • Dark theme polish: transparent media panels, dynamic separators, dark result background
  • Add dark mode gradient colors for application header
  • Dark-theme table polish – dynamic striping & renderer fixes
  • ThemeMediator.loadDarkTheme(): define UIManager "Table.alternateRowColor" (15% darker than background).
  • FWAbstractJPanelTableCellRenderer: use Look-and-Feel selection/alternate colours instead of hard-coded white; keep foreground in sync.
  • SourceRenderer: make cell opaque and apply same dynamic row / selection colours.
  • Basic theme switching working
  • Updated changelog file
  • Added script to open test reports

-- FrostWire Team contact@frostwire.com Tue, 13 May 2025 15:11:00 -0600

Download FrostWire