We are excited to announce the release of FrostWire 7.0.2 (Stable) for Windows, macOS, and Linux. This update is a significant milestone for user privacy and search efficiency, introducing a robust “VPN-Drop Protection” system to keep your identity safe while downloading.
Whether you are a casual downloader or a power user, 7.0.2 brings a more responsive, cleaner, and safer experience to your desktop.
🛡️ Stay Protected: New improved VPN-Drop Protection
The headline feature of this release is the VPN-Drop Protection. In the world of BitTorrent, maintaining a secure connection is paramount. We’ve added a fail-safe to ensure your real IP address is never accidentally exposed.
Quick Toggle: You’ll notice a new checkbox in the status bar. This allows you to instantly enable or disable VPN-Drop Protection.
Automatic Pausing: If this setting is on and your VPN disconnects, FrostWire will automatically pause all BitTorrent transfers.
Smart Alerts: FrostWire now checks for an active VPN connection when you start a new download, open a .torrent file, or paste a magnet link. If you aren’t protected, a dialog will alert you before the transfer begins.
Performance First: We’ve optimized the logic behind the scenes (using a new VPNDropGuard system) to ensure that checking your VPN status won’t lag your computer or freeze the interface.
🔍 Better Search, Faster Results
We’ve overhauled how FrostWire sorts your search results to help you find the highest quality files in less time.
Relevance First: Search results are now prioritized by keyword matches first, followed by seed counts and popularity. This ensures that the most relevant and “healthy” files stay at the top of your list.
Bug Fix: We’ve squashed a bug where seed counts were occasionally disappearing from the search UI. You’ll now have full visibility into the health of every file before you click download.
🎨 Clean & Compact UI
We believe a powerful tool should also be a beautiful one. FrostWire 7.0.2 features a more compact status bar layout. By reducing spacing and using a smaller font for the VPN indicators, we’ve freed up screen real estate while still keeping your vital connection stats front and center.
There is even a handy, clickable “VPN” link in the status bar that takes you directly to information on how to better protect your privacy.
Changelog Highlights:
Improved: Search result sorting (Keyword relevance > Seeds/Popularity).
New: VPN-Drop protection checkbox in the status bar.
New: VPN status checks when starting downloads or opening magnet links.
Fix: Resolved issue with disappearing seed counts in search results.
Optimization: All VPN-related logic moved to background threads to prevent UI blocking.
UI: Minimalist spacing for VPN and status indicators.
Just in time for the new year, we are rolling out a vital update for our Android users. FrostWire 3.0.14 (build 768) is now available, and it addresses several critical “day-one” issues introduced with our recent V2 architecture overhaul.
This release focuses on making sure the app starts correctly, downloads reliably, and accurately reports the status of your transfers.
Many users reported that newly started torrents would immediately show an “Error” status even when the download was healthy. We found that the app was occasionally reading from an outdated status cache. We’ve implemented a fix to invalidate that cache immediately upon starting a transfer, ensuring you see the actual download progress instead of a false error.
⚡ Solving Initialization Crashes
We’ve eliminated two major race conditions that occurred during the app’s startup sequence:
Port 0 Binding Failure: Previously, the BitTorrent engine (BTEngine) would sometimes try to start before your settings were loaded, causing it to fail by trying to connect to “Port 0.”
Session Initialization: We’ve ensured the ConfigurationManager now blocks and finishes loading preferences before the engine starts, preventing session-related crashes.
🔍 Restoring Search-to-Download Functionality
Following our recent search architecture consolidation, some results from popular sources (like TPB, 1337X, and MagnetDL) weren’t being recognized as torrents.
We have added support for the new CompositeFileSearchResult interface.
This ensures that when you click a search result, the download starts immediately as intended.
📈 Maintenance & Core Updates
We have refreshed our core dependencies to ensure maximum compatibility with the latest Android devices:
yt-dlp Updated to 2025.12.08: Essential for high-speed cloud video downloads.
Direct Download: Visit FrostWire.com to download the latest APK directly.
If you’ve been having trouble with downloads not starting or seeing unexpected errors in your transfer list, this update is highly recommended. Thank you for helping us make FrostWire better by reporting these issues!
Happy New Year and Happy Downloading! — The FrostWire Team
18 years ago FrostWire began as a community-driven fork with a mission: keep decentralized file-sharing alive, open, and powerful. In 2025 we’re still here — evolving faster than ever.
A massive leap forward. A brand-new era for the app. Not a facelift — an entirely new heart.
🚀 A New BitTorrent Engine for a New Decade
Under the hood, FrostWire 7 is powered by jlibtorrent 2.0: two years of engineering, hundreds of optimizations, and native support for BitTorrent v2.
What that means to you:
Faster swarm performance
Better integrity checking
More resilient downloading
Hybrid v1+v2 torrents that “just work”
Optimized disk I/O for modern hardware
This is the biggest peer-to-peer core upgrade in FrostWire’s history.
✂️ No More Ads. No Bundled Garbage. Just Open Source.
We’re done with the distractions.
0% third-party ads
0% bundled installer offers
100% free & open-source
FrostWire is now fully community-supported — donations and optional VPN referrals keep the lights on. The app belongs to users again.
If you believe in a world where software is free because it is free — we’d love your help.
🔍 The Search Experience Rebuilt From Scratch
We demolished our legacy search architecture and rebuilt the engine to be leaner and faster:
Up to 50% less memory allocation
New performers like Knaben and TorrentCSV
Far quicker result rendering
Smarter I/O scheduling so search doesn’t freeze the UI
Search feels snappy again — even on older systems.
⚡ FrostWire 7 Starts Faster and Stays Smooth
A huge part of this cycle focused on eliminating UI freezes and making startup feel instant. We pushed expensive tasks off the main UI thread — all 19+ offenders fixed.
Benefits you’ll feel right away:
Launch in seconds, not ages
Smooth scrolling through huge torrent lists
Zero-stall layout rendering
More responsive search result interaction
We want FrostWire to be a fast desktop app, not “a Java app that runs like one.”
🧩 Smarter Packaging: Simpler Installs, Broader Linux Support
This release also marks a major cleanup in how FrostWire ships across platforms.
Linux: One Package to Run Them All
We’ve moved away from distro-specific packaging like .deb and .rpm. They constantly forced us into whack-a-mole compatibility battles across dozens of flavors.
Instead, FrostWire 7 now ships as:
Linux x86_64 .tar.gz
Linux ARM64 .tar.gz (yes, Raspberry Pi users and macOS with Apple Silicon on UTM containers — finally!)
Just unpack and run:
./frostwire
Or choose a full installation so your desktop environment recognizes FrostWire automatically:
./install.sh
You can remove it just as easily:
./uninstall.sh
Tested across GNOME, KDE, XFCE, Cinnamon — everywhere Linux thrives.
One archive. All Linux. Zero drama.
macOS: The .pkg Era
We’ve retired the old .dmg drag-and-drop days. FrostWire for macOS now uses a modern .pkg installer:
Double-click
Follow the dialog
Done
No more wondering where the app actually landed.
🎧 Less is More — Media Player Removed
FrostWire 7 no longer ships with its own audio/video player.
Why?
Less binary bloat
Less CPU/memory footprint
Less maintenance overhead
Your OS already has a media player — and usually a better one. So now playback just hands off to the default app.
More focus, fewer bundled components.
🛠️ And Thousands of Under-the-Radar Improvements
Cleaner codebase. Modern libraries. Better diagnostics. Safer crypto. New hashing support. Countless bug fixes from years of backlog.
We even finally removed legacy Azureus code that had been haunting the repo since the early 2000s.
FrostWire 7 is the most stable, modern, and maintainable version we have ever shipped.
🌎 Built by and for the Open-Source Peer-to-Peer Movement
FrostWire 7 is more than just revision numbers and changelog entries — it’s a statement:
Decentralized file sharing deserves fast, transparent, user-owned tools. No corporate lock-in. No telemetry farms. No crypto-mining in the background. Just freedom to share.
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()
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.)
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
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.
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.
🧘 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!
FULL CHANGELOG
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
Since its inception, jlibtorrent has bridged the high-performance C++ BitTorrent engine libtorrent with Java environments—enabling developers to build full-featured torrent clients on Android, desktop Java, and server applications. With the recent jlibtorrent 2 release series (version 2.0.11.0 onward) the library undertakes a major leap—both in API richness, platform portability (including native arm64 binaries), and runtime capability—positioning it as the backbone for the next generation of BitTorrent clients built in Java (many targeting Android) and for server-side deployments on Linux arm64 for low-energy hosting.
Java API changes in jlibtorrent 2
A fluent builder API for creating .torrent files: the TorrentBuilder class now offers TorrentBuilder.Listener (for file-filtering and progress callbacks) and TorrentBuilder.Result to expose rich metadata output.
Time-series metrics support via TorrentStats.SeriesMetric (including metrics like TIME, DOWNLOAD_RATE, UPLOAD_RATE) enabling richer monitoring and analytics.
Enhanced DHT/item support for mutable items: SessionManager.MutableItem introduces editable DHT items with Ed25519 signatures and versioning, opening up advanced peer/data-anchoring use-cases.
Networking introspection via EnumNet.IpInterface (address, netmask, friendly names) and EnumNet.IpRoute (routing table entries with gateway and MTU) to support complex network-aware clients.
Comprehensive API refinements: many previously internal types (AnnounceInfohash, Pair, PiecesTracker, Vectors, AlertMulticaster, MoveFlags, IntSeries, and nested types) have been documented, and now offer full JavaDoc coverage with dozens of example usage patterns.
Zero HTML/critical errors in the generated javadoc for the 2.0.12.8 release, marking a maturation of API stability and documentation quality.
Platform and build improvements
Native binaries now support Linux arm64 (alongside Apple Silicon and Android arm64) enabling client applications and servers to run on modern low-power, high-efficiency hardware (e.g., AWS Graviton, Ampere Altra, Raspberry Pi-class boards).
The jlibtorrent 2 series is built on libtorrent’s “RC_2_0” branch and uses modern toolchains (C++20, Boost 1.88.0+, OpenSSL 3.5.2) and updated SWIG bindings (e.g., 4.x series) ensuring performance, security, and long-term compatibility.
Android builds are optimized for 16KB page-size (NDK r28c) and modern Android SDKs; desktop builds support macOS (arm64), Windows, and Linux.
Maven/Gradle artifacts now include both class wrappers and native libraries for multiple architectures, simplifying client-side dependency management across platforms.
Why this matters
For Java and Android developers building BitTorrent clients, jlibtorrent 2 offers:
Java-friendly, high-performance torrent engine: Access to libtorrent’s capabilities (v2.0 engine) via Java wrappers means full-featured clients (seeding, DHT, magnets, v1/v2 torrents) without having to implement C++ JNI layers from scratch.
Cross-platform consistency: One set of Java APIs works on Android (arm/arm64/x86/x86_64), desktop (Windows, macOS, Linux), and now server/embedded arm64.
Server-side arm64 deployments: As hosting moves toward energy-efficient arm64 hardware (e.g., cloud Graviton/Altra, edge servers), jlibtorrent supports native binaries for these platforms—enabling server-side torrent applications, indexing, seeding farms, or hybrid models (mobile+backend) on modern infrastructure.
Rich API & observability: Features like the series metrics, IP route introspection, DHT mutable items, and builder APIs for .torrent generation make it easier to build advanced clients: monitoring, analytics, plugin extensions, custom storage strategies, or even BitTorrent-native plugin ecosystems.
Maturation: With more than 50 public API classes now fully documented, dozens of example use-cases, and a clean JavaDoc build, jlibtorrent 2 is positioned as a production-ready library rather than an exploratory layer.
How FrostWire leverages jlibtorrent 2
The open-source project FrostWire (which began as a fork of LimeWire and evolved into a Java-based BitTorrent client) now transitions into its next era: FrostWire for Android 3 and FrostWire 7 for Desktop. These versions (available today for developers that compile from source) incorporate jlibtorrent 2 as their underlying torrent engine.
On Android, the native arm64 builds of jlibtorrent allow FrostWire to run efficiently across modern mobile chipsets and tablets, with lower power consumption and full support for BitTorrent v2 features.
On desktop and server contexts, FrostWire 7 (and related server/daemon variants) leverage the arm64 Linux binaries to run on cost-effective, high-density hostings (such as Graviton nodes) for seeding, indexing, or cloud-based media distribution.
By basing on the new builder APIs, FrostWire can offer built-in “create and share a torrent” workflows, advanced analytics (upload/download rate time series), and network topology awareness (choosing optimal interfaces/routes).
FrostWire’s evolution thus illustrates how a modern Java client can span mobile, desktop, and backend/cloud deployments — all running the same torrent core logic via jlibtorrent 2.
Implications for the wider BitTorrent ecosystem
Java ecosystem: Historically, most BitTorrent client engines have been C++ (libtorrent), C (Transmission), or in other languages. By providing a fully-featured Java wrapper, jlibtorrent 2 lowers the barrier for Java/Kotlin (Android) developers to build native-capable clients without rewriting complex protocol engines.
Mobile-first torrenting: As mobile devices become more capable and power-efficient, having a mature Java/Android torrent engine means richer P2P apps, offline media distribution, peer-to-peer content delivery, etc., are more feasible on mobile platforms.
Edge/Server hybrid deployments: The availability of arm64 native binaries means torrent-based services can run on low-power edge servers, small VPS instances, or even embedded devices—broadening deployment scenarios beyond traditional x86 desktops.
BitTorrent v2 readiness: As the ecosystem moves toward BitTorrent v2 (merkle tree torrents, enhanced hashing), jlibtorrent 2 supports those features, enabling clients built today to be future-proof.
Extensibility: With plugin-capable API surfaces (builder APIs, DHT mutable items, network introspection), new use-cases—such as cryptocurrency-anchored DHT items, content-distribution overlays, branded client workflows, or hybrid peer/edge architectures—become more accessible to Java teams.
Summary
In short: jlibtorrent 2 represents the modern foundation for Java-based BitTorrent applications—high-performance native bindings across architectures (including arm64 servers and mobile), deeply-documented APIs, builder patterns, monitoring capabilities, and extensibility hooks. With FrostWire for Android 3 and FrostWire 7 for Desktop as flagship users, this library sets the stage not only for mobile and desktop clients, but also for server and edge deployments that use BitTorrent technology in new ways.
We’re excited to announce a brand new update for FrostWire Desktop, now at version 6.14.0 (build 326). This release focuses on aesthetic upgrades, smarter search filtering, and a smoother experience for dark theme users.
📥 Download FrostWire 6.14.0
Available now for Windows, macOS (Intel & Apple Silicon), and Linux:
Search results now filter out junk more intelligently. If a result doesn’t actually match your keywords — even in a fuzzy way — it won’t clutter your screen.
🎨 Massive Dark Theme Overhaul
We’ve polished the dark mode experience throughout the app:
Darker, cleaner backgrounds in search, library, and transfers.
Unified colors across tables, text fields, and panels for a more consistent look.
Brightened icons so they’re visible even in the darkest corners of the app.
Dialogs, tooltips, and toggle buttons are now easier to read.
More natural gradients and dynamic row striping for tables.
🖼️ UI Refinements All Around
The new app splash image makes a bold entrance.
Slide panels now have a transparent download button and black background behind author names.
The Settings button in the status bar has been cleaned up.
Fixes and cleanup across the board for layout and responsiveness.
⚙️ Behind the Scenes
Better handling of theme changes without glitches.
Improved memory of what theme you’re using.
Exceptions during UI updates are now safely ignored to prevent crashes.
A complete cleanup of unnecessary or outdated UI rendering code.
We’re excited to announce the latest FrostWire for Android release, version 2.9.7 (build 752). This update packs critical crash fixes, stability improvements, and under-the-hood tweaks to keep your BitTorrent experience smooth and reliable.
🔧 Crash Fixes & Stability Improvements
NPE Guard in PerformersHelper Fixed a NullPointerException in PerformersHelper.sortByRelevance when the current query was null or empty, eliminating random app crashes.
Safe UI Handling Guarded against showing UI after an activity is paused in local broadcast receivers, preventing IllegalStateException.
Notification Daemon Refinement Moved the startForeground() call from onCreate() to onStartCommand() in MusicPlaybackService, ensuring our notification update daemon starts exactly once—and only when it’s supposed to.
DrawerLayout Hardening Swapped out DrawerLayout for a new SafeDrawerLayout that catches measurement-related IllegalStateException and falls back gracefully.
Bundle Size Management Avoided TransactionTooLargeException by writing large torrent metadata to a temporary file (rather than squeezing it into an Intent bundle).
Chaquopy Packaging Fix Ensured Python code under src/main/python is included in the APK, fixing “marshall data too short” errors for scripting features.
🛠 Additional Under-the-Hood Tweaks
Version Bump Updated versionCode to 752 and versionName to 2.9.7 in the AndroidManifest.
Gradle Integration Added a Gradle block to package Chaquopy’s Python sources automatically.
Changelog Update Refreshed changelog.txt with all the above fixes, dated APR/24/2025.
We just released FrostWire 2.9.6 (Build 748) and it’s more responsive than ever. This update brings performance improvements, upgraded libraries, and an important fix to avoid freezes when sorting large search result sets.
✅ Fix: Avoid ANR (freeze) when sorting massive search result sets
Sorting is now done asynchronously to keep the UI responsive, even with thousands of results.
🧠 Updated yt-dlp to version 2025.03.31 for improved video/audio compatibility.
📦 Dependency upgrades for performance and security:
androidx.core:core → 1.16.0
firebase-bom → 33.12.0
applovin-sdk → 13.2.0
unityads-adapter → 4.14.1.0
com.google.android.ump → 3.2.0
Kotlin plugin and stdlib → 2.0.21
Gradle wrapper → 8.11.1
Android Gradle Plugin → 8.8.2
🚀 Why this matters
This update is all about smoother performance and reliability. If you’ve ever experienced lag or freezes when handling large search result lists, this version eliminates that pain point. We’ve moved sorting logic to a background thread, keeping the app snappy and responsive on all devices.
🧊 Stay tuned…
More enhancements and features are in the works. Got feedback or requests? Join us on GitHub or drop your ideas in the community forums. We’re listening.
We’ve made huge improvements to how search results are ranked.
Results without keyword matches are now filtered out, so you only see what’s relevant.
Fuzzy matching is now used to improve search accuracy even when there are minor typos or variations in keywords.
We’ve also removed common stopwords (like and, the, in, on) from affecting search accuracy.
🚀 Performance & Stability Enhancements
Upgraded yt-dlp to version 2025.2.19 for better video downloading.
Updated Firebase Crashlytics (v3.0.3) to improve app diagnostics and stability.
Updated Google Firebase SDK to 33.10.0.
Optimized how search results are sorted to reduce lag when loading many results.
Various bug fixes and stability improvements across the app.
📡 Better Media Support & Advertising Integrations
Updated AppLovin SDK to 13.1.0.
Updated Unity Ads Mediation Adapter to 4.13.1.1 for a better monetization experience.
Improved playlist management and removed some outdated methods for better compatibility.
Why Update?
If you’re using an older version of FrostWire, you’ll immediately notice the difference in search speed and accuracy. No more irrelevant search results clogging your screen—just the content you’re looking for, ranked smartly with our improved algorithm.
REMINDER: When you download and install FrostWire you must agree that you will not use it for the purpose of copyright infringement otherwise the software won’t work. FrostWire condemns copyright infringement.
As winter paints the world with frosty hues, FrostWire steps into the spotlight with its latest update—version 2.9.2 build 743. This release is more than just an update; it’s a technological blizzard designed to enhance your music experience while embracing the latest in Android development. Here’s everything you need to know about this feature-packed release.
In the ever-changing world of Android, keeping up with the latest trends and requirements is essential. FrostWire 2.9.2 doesn’t just keep pace; it sets a new standard by targeting Android 14, embracing Java 17, and ensuring compatibility with modern devices. Whether you’re a long-time FrostWire fan or a newcomer, this update is crafted to bring you a seamless, reliable, and cutting-edge experience.
The Highlights
1. Platform Evolution:
Targeting Android 14 (SDK 34) with Java 17 compatibility ensures FrostWire runs smoothly on the latest devices.
Minimum SDK bumped to Android 8.0 (Oreo), bringing improved security and features.
2. Streamlined Codebase:
Removed outdated dependencies for a cleaner, more efficient app.
Leveraged Android’s Workers API to replace background services, boosting performance and maintainability.
3. Notification Magic:
Notifications have been modernized to comply with Android 13/14 standards. Say goodbye to outdated alerts and hello to streamlined notifications with buildBasicNotification().
4. Playlist Perfection:
Unified playlist fetching using MusicUtils.getPlaylists().
Fixed pesky bugs, ensuring user-created playlists always display as intended.
5. Thread Safety and Error Handling:
Introduced CountDownLatch and AtomicReference to handle app states more robustly.
Enhanced error logging and defensive checks to keep issues at bay.
6. Ad Smarts:
Fixed ad debounce issues to prevent unnecessary reloads, ensuring a smoother user experience.
This release isn’t just about the present; it’s a step toward a more sustainable FrostWire. By adopting modern APIs and practices, we’re ensuring the app continues to thrive as Android evolves. Whether it’s enhanced lifecycle management, better compliance with strict mode policies, or improved dependency management, every change is a step forward.
A Winter Adventure Awaits
Just like a frosty breeze invigorates the senses, FrostWire 2.9.2 revitalizes your app experience. Whether you’re curating playlists, discovering music, or simply vibing to your favorite tunes, this update ensures a smoother, more enjoyable journey.
So, what are you waiting for? Update to FrostWire 2.9.2 and let this wintry wonderland of features transport you to a new era of music enjoyment.
Download the update now, and let’s make this a winter to remember!
Share Your Thoughts
We’d love to hear from you! Found a new favorite feature or have suggestions for the next update? Drop us a comment below or join the conversation on our social media channels. Together, let’s keep FrostWire cool and cutting-edge.