FrostWire 7 — The Next Generation of Desktop BitTorrent

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.

Today, we’re proud to introduce FrostWire 7

Download FrostWire 7 today.



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.

If that vision resonates with you…

Every bit of support helps keep the project alive and independent.


🔥 Welcome to the Future of FrostWire

Download FrostWire 7 today.
Rejoin the swarm.
Let’s keep building an internet that cannot be censored.

👉 The Future is Peer-to-Peer.

frostwire (7.0.0) stable; urgency=high

  • New:Powered by Jlibtorrent 2.0.12.5 with bittorrent 2.0 support and hundreds of optimizations
  • New:Dynamic SoundCloud client ID and app version fetching from remote server for uninterrupted service
  • New:TorrentCSV search performer
  • New:Knaben Database Search Performer
  • New:Partial selection file dialog now allows shift-click to select ranges of files in torrents
  • New:settings panel to pick location for .torrent files
  • New:FlatLaf light theme
  • New:Header bar rearranged, search bar goes to the center, nav buttons on the left, FW Logo first
  • New:Torrent Transfer > Advanced > Check local data feature. If a file belonging to a torrent is now on disk it can be force checked
  • New:Audio and video playback now uses the operating system’s default media player instead of custom player infrastructure
  • New:Strict EDT Mode to catch long running tasks stalling event dispatch thread
  • EDT freeze:Comprehensive startup performance overhaul – defer heavy class loading and I/O to prevent EDT blocking during initialization (19 EDT violations fixed)
  • EDT freeze:ResourceManager uses deferred image loading instead of synchronous MediaTracker to avoid blocking on image I/O
  • EDT freeze:LibraryCoverArtPanel defers component listener initialization with SwingUtilities.invokeLater()
  • EDT freeze:SearchMediator uses lazy singleton pattern with deferred SearchResultDisplayer creation
  • EDT freeze:MPlayerInstance.runCommand() moved to background thread to avoid Process.waitFor() blocking EDT
  • EDT freeze:SearchResultDisplayer creation deferred with placeholder component to avoid class loading file I/O during tab initialization
  • EDT freeze:SplashWindow preloads OS icons during initialization to avoid file I/O during paint operations
  • EDT freeze:StatusLine defers bandwidth label icon loading to background EDT cycle using SwingUtilities.invokeLater()
  • EDT freeze:ApplicationHeader defers MediaPlayerComponent creation with placeholder panel to prevent class loading during startup
  • EDT freeze:MainFrame defers expensive minimum size calculations to background thread – prevents 2+ second EDT blocking from cascading layout calculations
  • EDT freeze:AbstractTab implements lazy icon loading to defer tab icon loading via SwingUtilities.invokeLater() on first getIcon() call
  • EDT freeze:SearchResultActionsRenderer defers 5 action button icons (play, download, details, speaker) via lazy static initialization with ensureIconsLoaded()
  • EDT freeze:AbstractActionsRenderer defers 3 action button icons (play, download, share) via lazy static initialization with ensureIconsLoaded()
  • EDT freeze:SourceRenderer defers 7 source icons (soundcloud, archive.org, tpb, zooqle, magnetdl, default, 1337x) via lazy static initialization with ensureIconsLoaded()
  • EDT freeze:TransferActionsRenderer defers 2 action button icons (play, share) via lazy static initialization with ensureIconsLoaded()
  • EDT freeze:TransferSeedingRenderer defers 2 seeding icons (seed, loading) via lazy static initialization with ensureIconsLoaded()
  • EDT freeze:TransferDetailFilesActionsRenderer defers 2 file action icons (play, share) via lazy static initialization with ensureIconsLoaded()
  • EDT freeze:PaymentOptionsRenderer defers 4 payment method icons (bitcoin_enabled, bitcoin_disabled, paypal_enabled, paypal_disabled) via lazy static initialization
  • EDT freeze:LogoPanel defers logo_header icon loading via SwingUtilities.invokeLater() with placeholder label
  • EDT freeze:MediaButton defers button icon loading (up and down icons) via SwingUtilities.invokeLater() in loadIcons() method
  • EDT freeze:LimeJFrame defers window icon loading via SwingUtilities.invokeLater() in loadWindowIcon() method
  • Performance:These EDT fixes significantly improve startup time and responsiveness, especially on resource-constrained systems and older hardware
  • Performance:Search architecture optimizations – 25-50% reduction in memory allocations
  • Performance:SizeParser utility consolidates duplicate implementations, 200+ lines of code eliminated
  • Performance:SearchMatcher memory optimization reduces garbage collection pressure by 25%
  • Performance:YT pattern static initialization and string operation optimization
  • Maintenance:SearchTimeoutException provides better diagnostics with performer and domain context
  • Maintenance:Search package hierarchy flattened, V2 package consolidated
  • Removed:TorrentDownloads search performer (site offline permanently)
  • Removed:BTDigg search performer (protected by Cloudflare, unable to reliably parse search results)
  • Maintenance:mplayer not available in linux warning can now not be shown ever again
  • Removed:Torlock search performer (old site is down, new site is malicious)
  • Removed:LimeTorrents search performer
  • Maintenance:MacEventHandler is now compatible with JDK 23 and JDK 24
  • Maintenance:Archive.org search
  • Maintenance:GloTorrents search
  • Maintenance:Idope search
  • Maintenance:MagnetDL search
  • Crash: fixed NPE in MultilineToolTip.updateUI() when switching from Synth L&F
  • Removed:FrostWire Media Player custom built-in audio/video player (fwplayer binaries for Windows/macOS/Linux)
  • Removed:MPlayer integration code and process management for audio playback
  • Removed:Player settings panel and configuration options
  • Removed:Playback state tracking and speaker icon indicators in UI components (TransferActionsRenderer, LibraryFilesTableDataLine, SearchResultActionsRenderer, etc.)
  • Removed:Speaker icon assets (speaker.png, speaker_light.png)
  • EDT freeze:moved media checks off EDT; coalesce selection; add EDT I/O guard
  • EDT freeze: Fix in TransferDetailFiles by moving heavy I/O to background thread, would stall app when opening large torrents on startup
  • Cleanup:removed all remnants of azureus source code
  • Optimization:PerformersHelper.sanitize() 8.8x speed gains in title normalization by not using a regex and instead simple string replacements
  • Fixed:logic bug in PerformersHelper.countMatchedTokens()
  • Cleanup:apple libdispatch removal
  • Cleanup:deprecated iTunes integration removed after cleanups. Users can manage their own playlists on Apple Music.
  • New: libtorrent::set_piece_hashes_posix_disk_io to avoid SIGSEGV/SIGBUS leaks to macos when creating torrents
  • Crash:don’t crash if a null set_piece_hashes_listener is passed to set_piece_hashes_ex
  • Crash:StatusLine seedingStatusButton.getText()
  • Crash:ConcurrentModificationException in Ssl$FWHostnameVerifier
  • Cleanup:Remove unused sun.awt.X11 classes (linux)
  • Maintenance:fix javadoc errors, javadoc cleanup
  • Maintenance:all license headers are consistent with GPL 3.0
  • Maintenance:simplified donations buttons in status bar to a single ‘Donate’ button
  • Maintenance:added don’t show me again for linux warning when mplayer isn’t found
  • Maintenance:fwplayer_osx.arm64 rebuilt with OpenSSL 3.5.3 support
  • Speed-up:reuse OkHttpClient instances to unlock connection pooling and reduce GC pressure
  • Speed-up:Cache torrent-search date parsers to eliminate per-result SimpleDateFormat allocations
  • Speed-up:Use buffered I/O for large transfers in OkHttpClientWrapper.save and ZipUtils.unzip. Up to 96% CPU savings in sys write calls, 30-50% reduction in CPU during I/O operations, search results should come out a lot faster
  • Speed-up:Optimize Levenshtein distance allocation footprint in PerformersHelper fuzzy matching
  • Speed-up:Optimize hot paths for string sanitizers – eliminate regex compilation overhead in search and scrapes (UrlUtils and StringUtils)
  • Speed-up:Optimize hot paths for Logger, ThreadPool, and collection sizing
  • Speed-up:Refactor SearchManager tasks to Runnable and remove Thread.yield() from hot path
  • Fixed:thread leak and data race in UrlUtils.getFastestMirrorDomain
  • EDT freeze:Comprehensive fix for EDT violations in transfers UI with multiple optimization layers
  • EDT freeze:Move BTDownloadModel.refresh() to background thread to prevent EDT blocking during model updates
  • EDT freeze:Add debouncing to BTDownloadDataLine.update() to prevent rapid successive JNI calls
  • EDT freeze:Throttle TransferActionsRenderer state checks to 200ms intervals during table rendering
  • EDT freeze:Move clearable downloads check to background thread in BTDownloadMediator.doRefresh()
  • EDT freeze:Add count caching to BTDownloadModel with background updates every 500ms
  • EDT freeze:Cache active uploads for hidden downloads in BTDownloadRowFilteredModel
  • EDT freeze:Use cached transfer state instead of expensive JNI calls in button state updates
  • jlibtorrent:libraries are now compiled with C++20 (ming/windows with C++2a which is the same)
  • jlibtorrent:g++-9 upgraded to g++-11 for linux build
  • jlibtorrent:new Sha256Hash::swig()
  • jlibtorrent:new SessionManager::find(Sha256Hash) and SessionManager::find(TorrentInfo) methods
  • jlibtorrent:built with android NDK r28c with 16K page size support
  • Android 64-bit binaries are compiled to have 16KB max-page-size
  • jlibtorrent:New com.frostwire:jlibtorrent- maven packages for easier integration with gradle/maven
  • jlibtorrent:new torrent_handle::get_resume_data() : add_torrent_params
  • jlibtorrent:new torrent_handle::get_resume_data(resume_data_flags_t flags) : add_torrent_params
  • jlibtorrent:new settings_pack.int_types i2p_inbound_length_variance
  • jlibtorrent:new settings_pack.int_types i2p_outbound_length_variance
  • jlibtorrent:Jar built with JDK 17 – JAVA_17 compatibility
  • jlibtorrentBoost 1.88.0 upgrade
  • jlibtorrent:OpenSSL 3.5.2 upgrade (from 1.1.1t)
  • jlibtorrent:Upgraded SWIG to 4.3.1
  • jlibtorrent:Gradle 9.0.0
  • dev:junit upgraded from 4.13.1 -> 4.13.2
  • lt:add 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
  • lt:fix handling of invalid filenames
  • lt: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 undersized packet
  • lt:uTP performance, piggy-back held back undersized packet with ACKs
  • lt:uTP performance, don’t send redundant deferred ACKs
  • lt:support incoming SOCKS5 packets with hostnames as source address, for UDP trackers
  • lt:ignore duplicate network interface change notifications on linux
  • lt:fix total_want/want accounting when forcing a recheck
  • lt:fix merging metadata with magnet links added on top of existing torrents
  • lt:add torrent_flag to default all file priorities to dont_download
  • lt:fix &so= feature in magnet links
  • lt:improve compatibility of SOCKS5 UDP ASSOCIATE
  • lt:fix madvise range for flushing cache in mmap_storage
  • lt:open files with no_cache set in O_SYNC mode~
  • lt:fix issue in use of copy_file_range() on linux
  • lt:avoid open-file race in the file_view_pool
  • lt:fix issue where stop-when-ready would not close files
  • lt:fix issue with duplicate hybrid torrent via separate v1 and v2 magnet links
  • lt:added new function to load torrent files, load_torrent_*()
  • lt:support sync_file_range() on linux
  • lt:fix issue in write_torrent_file() when file size is exactly piece size
  • lt:fix file_num_blocks() and file_num_pieces() for empty files
  • lt:add new overload to make_magnet_uri()
  • lt:add missing protocol version to tracker_reply_alert and tracker_error_alert
  • lt:fix privilege issue with SetFileValidData()
  • lt:add asynchronous overload of torrent_handle::add_piece()
  • lt:default to a single hashing thread, for full checks
  • lt:Fix bug when checking files and the first piece is invalid
  • lt:fix issue creating a v2 torrent from torrent_info containing an empty file
  • lt:make recheck files also update which files use partfile
  • lt:add write_through disk_io_write_mode, which flushes pieces to disk immediately
  • lt:improve copy file function to preserve sparse regions (when supported)
  • lt:add function to truncate over-sized files part of a torrent
  • lt:fix directory creation on windows shared folders
  • lt:add flag to make add_files() not record file attributes
  • lt:deprecate (unused) allow_partial_disk_writes settings
  • lt:fix disk-full error reporting in mmap_disk_io
  • lt:fixed similar-torrents feature for v2 torrents
  • lt:fix potential unbounded recursion in add_completed_job, in disk I/O
  • lt:deprecated (unused) volatile_read_cache setting
  • lt:fix part files being marked as hidden on window
  • lt:on windows, explicitly flush memory mapped files periodically
  • lt:fix build with WolfSSL
  • lt:fix issue where incoming uTP connections were not accepted over SOCKS5
  • lt:fix several issues in handling of checking files of v2 torrents, esp. from magnet links
  • lt:make the token limit when parsing metadata from magnet files configurable
  • lt:fix issue with stalled pieces on disk full errors
  • lt:fix missing python binding for file_progress_flags
  • lt:fix torrent_file_with_hashes() to fail when we don’t have the piece layers
  • lt:restore path character encoding conversion for non UTF-8 locales on linux
  • lt:fix use-after-free bug in make_magnet_uri
  • lt:add write_torrent_file() to produce a .torrent file from add_torrent_params
  • lt:allow loading v2 .torrent files without piece layer
  • lt:fix issue with adding v2 torrents with invalid file root hash
  • lt:fix piece picker bug causing double-picks with prefer-contiguous enabled
  • lt:expose session_params in python bindings
  • lt:fix (deprecated) use of add_torrent_params::info_hash
  • lt:fix issue creating and loading v2 torrents with empty files. Improves conformance to BEP52 reference implementation
  • lt:add new torrent_file_with_hashes() which includes piece layers for creating .torrent files
  • lt:add file_prio_alert, posted when file priorities are updated
  • lt:fix issue where set_piece_hashes() would not propagate file errors
  • lt:add missing python binding for event_t
  • lt:add work-around for systems without fseeko() (such as Android)
  • lt:add convenience header libtorrent/libtorrent.hpp
  • lt:increase default max_allowed_in_request_queue
  • lt:fix loading non-ascii filenames on windows with torrent_info constructor (2.0 regression)
  • lt:add std::hash<> specialization for info_hash_t
  • lt:fix integer overflow in hash_picker and properly restrict max file sizes in torrents
  • lt:strengthen SSRF mitigation for web seeds
  • lt:add v1() and v2() functions to torrent_info
  • lt:fix piece_layers() to work for single-piece files
  • lt:fix python binding regression in session constructor flags
  • lt:fix unaligned piece requests in mmap_storage
  • lt:improve client_data_t ergonomics
  • lt:fix issue with concurrent access to part files
  • lt:fix attribute in single-file v2 torrent creation
  • lt:fix padding for empty files in v2 torrent creation
  • lt:add function to ask a file_storage whether it’s v2 or not
  • lt:fix mtime field when creating single-file v2 torrents
  • lt:fix performance regression in checking files
  • lt:disable use of SetFileValidData() by default (windows). A new setting allows enabling it
  • lt:dropped dependency on iconv
  • lt:deprecate set_file_hash() in torrent creator, as it’s superceded by v2 torrents
  • lt:deprecate mutable access to info_section in torrent_info
  • lt:removed deprecated lazy_entry/lazy_bdecode
  • lt:stats_alert deprecated
  • lt:remove bittyrant choking algorithm
  • lt:update userdata in add_torrent_params to be type-safe and add to torrent_handle
  • lt:add ip_filter to session_params
  • lt:added support for wolfSSL for SHA-1 hash and HTTPS (no Torrents over SSL)
  • lt:requires OpenSSL minimum version 1.0.0 with SNI support
  • lt:deprecated save_state() and load_state() on session in favour of new
  • lt:write_session_params() and read_session_params()
  • lt:added support for BitTorrent v2 (see docs/upgrade_to_2.0.html)
  • lt:create_torrent() pad_file_limit parameter removed
  • lt:create_torrent() merkle- and optimize-alignment flags removed
  • lt:merkle_tree removed from add_torrent_params
  • lt:announce_entry expose information per v1 and v2 info-hash announces
  • lt:deprecated sha1_hash info_hash members on torrent_removed_alert,
  • lt:torrent_deleted_alert, torrent_delete_failed_alert and add_torrent_params
  • lt:undeprecate error_file_metadata for torrent errors related to its metadata
  • lt:remove support for adding a torrent under a UUID (used for previous RSS support)
  • lt:remove deprecated feature to add torrents by file:// URL
  • lt:remove deprecated feature to download .torrent file from URL
  • lt:requires boost >= 1.66 to build
  • lt:update networking API to networking TS compatible boost.asio
  • lt:overhauled disk I/O subsystem to use memory mapped files (where available)
  • lt:libtorrent now requires C++14 to build
  • lt:added support for GnuTLS for HTTPS and torrents over SSL
  • lt:fix issue where stop-when-ready would not close files
  • lt:uTP performance, fix packet loss when sending is stalled
  • lt:uTP performance, prevent premature timeouts/resends
  • lt:uTP performance, more lenient nagle’s algorithm to always allow one outstanding undersized packet
  • lt:uTP performance, piggy-back held back undersized packet with ACKs
  • lt:uTP performance, don’t send redundant deferred ACKs
  • lt:fix wanted_done/done accounting when force-rechecking
  • lt:expose userdata via torrent_handle (back-port from 2.0)
  • lt:fix renaming of filenames that are too long for the filesystem
  • lt:made UPnP and LSD code avoid using select_reactor (to work around an issue on windows in boost.asio < 1.80)

New jlibtorrent/libtorrent 1.2.10.0 library

Code BitTorrent apps in Java for Android, Desktop and Servers with the official Java Wrapper for libtorrent 1.2.10.0

1.2.10.0

  • libtorrent 1.2.10 update (70f1de3f7ec4012aaea420ff150ef0135d397706)
  • lt: improve stat_file() performance on Windows
  • lt: fix issue with loading invalid torrents with only 0-sized files
  • lt: fix to avoid large stack allocations
  • lt: add macro TORRENT_CXX11_ABI for clients building with C++14 against
    libtorrent build with C++11
  • lt: removed deprecated wstring overloads on non-windows systems
  • lt: drop dependency on Unicode’s ConvertUTF code (which had a license
    incompatible with Debian)
  • lt: fix bugs exposed on big-endian systems
  • lt: fix detection of hard-links not being supported by filesystem
  • lt: fixed resume data regression for seeds with prio 0 files
  • compiler update: g++-5 -> g++-7

jlibtorrent-1.2.10.0-javadoc.jar 2.51 MB
jlibtorrent-1.2.10.0-sources.jar 408 KB

Java Classes (required)
jlibtorrent-1.2.10.0.jar 675 KB

Then include the jar with the JNI bindings as you need for your architecture

Android 32bit
jlibtorrent-android-arm-1.2.10.0.jar 2.36 MB
jlibtorrent-android-x86-1.2.10.0.jar2.72 MB

Android 64bit
jlibtorrent-android-arm64-1.2.10.0.jar 2.42 MB
jlibtorrent-android-x86_64-1.2.10.0.jar2.7 MB

Windows 64bit
jlibtorrent-windows-1.2.10.0.jar4.71 MB

macOS 64bit
jlibtorrent-macosx-1.2.10.0.jar 2.19 MB

Linux 64bit
jlibtorrent-linux-1.2.10.0.jar5.62 MB

FrostWire, Alternative to BitTorrent

As you probably know, According to TrustedReviews and many other news sources BitTorrent has been sold to Justin Sun and his blockchain startup Tron.

“BitTorrent has been sold to the founder of cryptocurrency TRON, who reportedly wants to use the acquisition to “legitimise” the blockchain startup’s reputation.” -TrustedReviews

 

Due to this, and because no one knows with certainty what will happen with BitTorrent, you will be wondering what is the best alternative. You came to the right place. FrostWire is one of the few fully independent, fully featured open source alternatives. FrostWire is a free, fully featured BitTorrent Client and Cloud downloader with a built-in Music Library designed for Android, Windows, Mac, and Linux.

FrostWire allows you to find & download any file from the distributed peer-to-peer BitTorrent Network – music, movies, apps, ebooks, images. Any file – no matter how big or small!
In addition, FrostWire is also a cloud downloader – fetching results and able to download files from cloud based sources such as Archive.org, SoundCloud.com and YouTube.

You just enter a keyword and search, then pick a file from search results and download the file with one tap. Yes. It is that easy!

So, what are you waiting for? Download FrostWire for free today!

MAJOR RELEASE: FrostWire Plus 2.0. for Android

DOWNLOAD NOW!

The year is almost over but we are still working! To end 2017 we have decided to release FrostWire 2.0. FrostWire 2.0. for Android is a major release of our app. We created a new details screens for BitTorrent transfers. You will love it! You will notice that it’s so relaxing to see how a Bittorrent swarm downloads the file pieces into our new Piece Hive view.

The new transfer detail screen for BitTorrent transfers has several tabs! The first tab is Files. On Files, you can see what files are included in the torrent.

You can play each file.

On the tab Pieces you can see how each piece of the torrent is downloaded. Also you can see the download and upload speed of the file, the number of pieces, and the piece size. You will be fascinated to see the download process of each torrent! No other app does this!

On the tab Status you can see what is the condition of the torrent at that moment. You can see the download percentage, the time it takes for it to download, how much has been downloaded and how much has been uploaded, what is the number of peers and seeds, the time of activity. It is a very detailed and complete information like no other torrent client!

On the Details tab you can see where the torrent is being downloaded, the total size, the number of  files, you can see the speed limit the hash number (unique for each torrent! greater security), the magnet link, and when the torrent was created.

On the Trackers tab you can see the list of trackers of the torrent file, and you can also add other trackers. Very simple, very useful, very powerful!

Finally, on the Peers tab you can see the number of peers of the torrent and details about from each of them.

On the other hand, now when you share a track that you are enjoying on social media, Frostwire will automatically attach a screenshot of thw music player. You can always delete the attachment from your social media post if you don’t want to include it. This is very useful if you want people to know what you are listening. For example, you can share it on Instagram, Facebook, etc!

Even more, FrostWire 2.0. is faster than the previous version of the app.

Changelog

FrostWire 2.0.0 build 485 – DEC/25/2017
– New Transfer Detail screens for BitTorrent transfers.
– New Share current track with FrostWire Player screenshot attachment
– Faster startup
– Library updates: jlibtorrent 1.2.0.15, gms 11.6.2, mopub 4.19.0, flexbox 0.3.1, applovin 7.6.2, presage 2.2.7
– Translations update

What is FrostWire?

FrostWire is a free, open source BitTorrent client first released in September 2004, as a fork of LimeWire. It was initially very similar to LimeWire in appearance and functionality, but over time developers added more features, including support for the BitTorrent protocol and a full blown media player.

What’s new in FrostWire 1.5.8 for Android

Download FrostWire Plus for Android
Download Source Code for FrostWire 1.5.8
Fork Us

FrostWire 1.5.8 – JUNE/16/2015
– Search performance improvements.
– Issues where subsequent searches would stop working fixed.
– TorLock search fixed.
– Added SSL (https) support for torrent web seeds.
– Icons/graphics update.
– New ‘Rate us’ reminder notification.
– WiFi sharing functionality removed. Less than 0.2% of the user
base making use of this, despite multiple rewrites we never
managed to get it to work 100% of the time.
– frostwire-jlibtorrent library updates.

Music by Exist Strategy “Departure”
Licensed under CC-BY 3.0
https://www.youtube.com/watch?v=0ddJ7FGX0ds

New FrostWire 6.0.6 out for Windows, Mac and Linux

Download from FrostWire’s Official Website
Download Binaries and Source from Github
Download from SourceForge.net

Changelog

frostwire (6.0.6) stable; urgency=high
* Fixes bug where default save location for torrents would not be accounted for.
* New: When changing default save location, any ongoing torrent transfers are
moved to the new location.
* Romanian and Finnish translation updates.
* New: Option to turn off Bittorrent DHT.
* YT search upgrades.
* New: Supports shortened y2u.be url searches.
* OSX: When shutting down to start the installer for an update
now the window is focused to make sure the user doesn’t get lost during the
update process.

— FrostWire Team Thu, 17 February 2015 14:44:30 -0500

FrostWire Wins 2nd Place at Miami Bitcoin Hackathon with decentralized shopping marketplace

This weekend our 2 lead developers spent 28 hours hacking away to bring home the silver at the Miami Bitcoin Hackathon organized by BitStop and Blockchain Beach.

hackathon-2nd-place

FrostWire’s project was built using the frostwire-jlibtorrent library and the Bitpay API to create a proof of concept for a p2p shopping marketplace called Seller.Trade on which customers pay with bitcoins.

Seller.Trade home page

End users just need a Bitcoin wallet to pay and web browser to search for products available, and sellers run a server side p2p app that connects to other sellers that participate in the network using the BitTorrent Mainline DHT. Nodes help route searches and products announced.

Seller.Trade search result page

We intend to create a binary release for Linux servers in the coming weeks and see where this experiment takes us.

SellerTrade product page

The project is very simple and it allows anyone in the planet to start their own store on line and accept Bitcoin payments, with the twist, that all the stores are connected to each other using a combination of the Mainline DHT we use for decentralized torrent tracking and an HTTP Rest API.

Check out our presentation to the judges (We finished early and made a video to not leave the presentation to improvisation and Murphy’s whims, and also so the world could see it anytime later on)

And here’s us accepting the prize (In bitcoins of course)

and now it will be in front of our desk to make us proud 🙂

10917564_10153018041182863_463409118_n

question… since you’re still reading all the way down here.

Would you like to see FrostWire yield search results of products that you could buy with Bitcoin?

Would you like to sell things using your own store server without paying any listing or comission fees?

Should we make Seller.Trade into a real world product?

FrostWire 6.0.1 released. Available now for download.

We can proudly say this is the leanest, and fastest FrostWire release we’ve ever made, and we’re only getting started with the performance improvements.

Download it now for free from the Official FrostWire Website:

Windows installer
MacOSX installer (64-bit)
Ubuntu (.deb) installer (64-bit)
RPM installer (64-bit)
TAR.GZ installer (64-bit)

The most fundamental upgrade about the 6.x series is the complete removal of the Azureus Torrent engine, we’ve replaced it with frostwire-jlibtorrent, a Java wrapper of the powerful libtorrent library.

The performance benefits are very palpable on search, downloads and other aspects of the application.

Having Libtorrent under the hood will allow us to continue working on the enablement of advanced features for expert BitTorrent users.

We’d like to invite everyone out there to benchmark FrostWire 5.7.7 against FrostWire 6.0.0 and let us know what they find, we’d love to make FrostWire 6 superior in every respect to the FrostWire 5 series.

HELP WANTED
Contributors are needed to keep moving the project forward at a faster face, we are now converting donations received into bitcoins which are deposited into a “Tip for commit” fund. All the contributions accepted into the project automatically trigger tips to the authors in bitcoins.

Anybody can help, you don’t need a bank account, or paypal account to receive your tips, all you need is a free Bitcoin wallet which is software you can download to your smartphone or PC, tips are effective immediatly after contributions are merged to the frostwire-desktop, frostwire-common, frostwire-jlibtorrent, and frostwire-android projects.

FULL CHANGELOG

frostwire (6.0.0) stable; urgency=high

PERFORMANCE:

  • New BitTorrent engine based on frostwire-jlibtorrent, a libtorrent wrapper api created by FrostWire.
  • Fixes EzTV search, now with https support.
  • Multiple bug fixes.
  • Improved OS event handling in MacOSX.
  • Extensive cleanup.
  • Fixes issues opening .torrents and magnets outside of FrostWire.

USER INTERFACE:

  • Icons, buttons and other user interface details refreshed.

TRANSLATIONS:

— FrostWire Team contact@frostwire.com Mon, 10 November 2014 18:18:00 -0500

FrostWire 6.0.0 running on Ubuntu Linux

FrostWire 6.0.0 running on MacOSX

How to help translate FrostWire for Desktop (Windows / Mac / Linux)

Help us translate the FrostWire user interface, be part of an open source project, learn new things.

0. Get a GitHub.com account and sign in
Go to GitHub.com and sign up for a free account unless you have one already.

1. Download and install Git on your computer
If you don’t have git installed on your computer, here are instructions on how to install.

git, is a version control software which helps us keep track of all the changes on every file that belong to the FrostWire project.
GitHub.com is a site where we host our source code and its origin git repository (the official one), think of the repository as a database to keep all those file versions.

GitHub is really helpful because it makes colaboration very social, we can comment and review each other’s changes before merging them into the origin repository.

2. Fork us on github.
Go to https://github.com/frostwire/frostwire-desktop/, this is the page for our origin repo. Forking means you will be making a copy of your own inside your github account. You will wok on that one, and when you are done you will send the changes to the origin repo.

For us by clicking on the button that says “Fork” on the top right.

Once the fork is done, you can go to your github personal page, and in the list of your repositories you should have your frostwire-desktop fork.

As of now, that copy lives only at github.com, you could try and edit the files up there, but it’s very uncomfortable working that way, the text editor can be quite slow sometimes, so …

3. Clone your forked repo to your computer
Go to a command line, or with your favorite git client make a clone of YOUR repo (not ours).
If you use the command line git client, you should issue the following command

git clone https://github.com/myusername/frostwire-desktop

wait a few seconds and all the source code and assets that belong to the frostwire-desktop project will be downloaded to a folder called “frostwire-desktop” on your computer.

change directory to it…
cd frostwire-desktop

4. Create a branch for your translation
Create a branch with a name that will help us understand that this is a translation update you’re sending us, it could be named something like
“translation-french-2013-november-myname”, so that we can easily see what language you are translating, on which date you were working on it, and your name so we can give you credit for it.

You create a branch on the git command line like this (just remember to put the name of YOUR branch instead)

Create a branch locally
git branch translation-french-2013-november-myname

Push it to your remote repository
git push origin -u translation-french-2013-november-myname

now your branch lives both on your computer and at your github repository.

Switch to that branch
git checkout translation-french-2013-november-myname

Now you’re ready to start working on your branch.

After we’ve accepted your changes, next time you want to help us do another update of the translation you will have to create a new branch.

5. Make sure the latest english strings have been put into your language.po file
enter the following command to sync strings

ant gettext-extract

(this could take a while to finish as it goes through every line of code looking for translatable strings.)

6. Translate, translate, translate
Now you get to do the actual translation. Translation files are in the following folder inside the frostwire-desktop project
cd lib/messagebundles

If you’re going to translate say to arabic, you will edit the ar.po file, it should be easy to find the language file for the language you intend to work on. We recommend that you use a PO Editor software to make things easier, and always make sure to save the file using UTF-8 encoding.

7. Test your translation
To test your translation, you will need to recreate the message bundle file, for this you will need to invoke the following command

ant gettext-bundle

assuming you didn’t mess up anything in the format of the .po file this should finish after a few minutes of bundling every language file.
If you see any errors you should try to fix them, if you don’t know how to fix them you can reach us on the FrostWire forum, or right here for help.

once the bundle is built, you need to test your translation, for this you will need to build FrostWire, you can do this in one step, from the root frostwire-desktop folder type:

ant

after a couple minutes it should be done compiling everything, and then you can invoke the “run” script right there if you’re on Linux or Mac, if you’re on windows, go to gui/ and invoke the run.bat file.

FrostWire will open, switch to your language and make sure your translations are fine.

8. Time to commit and push your changes

Once you are finished, commit your changes, make sure you don’t make changes in other files than the .po of the language you are working with.
So if you’re working say with italian, you would do (from the frostwire-desktop root directory)

git commit lib/messagebundles/it.po -m "my translation update for italian users"

and then push it to your fork up on github

git push

9. Submit a pull request

Once you see your last commit on github and you are sure you’re finished, it’s time to let us know, so you will submit what’s called a “Pull Request”.
If there are any special notes please let us know, we’ll review your changes, and if everything is good to go, we’ll merge them, and you will make open source history 🙂

Doing more with 1/2 of the code

Just wanted to share a graph showing the number of lines of code in time for FrostWire during the past 2 years.

Boy have we removed code to make things better.

Screen Shot 2013-01-16 at 3.55.21 PM

You can also contribute to FrostWire, join us and make a difference!