jlibtorrent 2: powering the next generation of BitTorrent clients in Java and on arm64

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.

Welcome to jlibtorrent 2.0.11.0

This is our first build of jlibtorrent-2.0, all tests are passing but we have yet to integrate the library with a production bittorrent client such as FrostWire for Desktop and FrostWire for Android.

We’ll be doing so over the next weeks, and once we’ve throughly tested everything is working as expected we’ll promote our next build (if necessary) to a stable release you can use to update your app to support bittorrent 2.0 features, plus all the fixes in libtorrent made the last 15 months.

PRE-RELEASE BINARIES
All the jlibtorrent unit tests pass with these, however, it has not been integrated to an actual bittorrent client yet.
most likely we’ll be releasing updates soon as we migrate FrostWire clients to use jlibtorrent 2.x

  • Migration and Integration
    • Migration to support libtorrent 2.0 integration.
    • Maintained 1.2.x on a separate branch without active maintenance; pull requests are welcome.
  • SWIG Interface Enhancements
    • Modularization of SWIG Interfaces:
      • SWIG interface files have been modularized for better maintainability and readability.
      • Added separate .i files for various libtorrent components, including:
        • libtorrent_address.i
        • libtorrent_tcp_endpoint.i
        • libtorrent_udp_endpoint.i
        • libtorrent_kademlia_dht_state.i
        • libtorrent_client_data.i
        • libtorrent_sha1_hash.i
        • libtorrent_info_hash.i
        • libtorrent_storage_defs.i
        • libtorrent_bitfield.i
        • libtorrent_operations.i
        • libtorrent_error_code.i
        • libtorrent_announce.i
        • libtorrent_file_storage.i
        • libtorrent_peer_request.i
        • libtorrent_bdecode.i
        • libtorrent_torrent_info.i
        • libtorrent_torrent_flags.i
        • libtorrent_add_torrent_params.i
        • libtorrent_close_reason.i
        • libtorrent_peer_info.i
        • libtorrent_torrent_handle.i
        • libtorrent_torrent_status.i
        • libtorrent_performance_counters.i
        • libtorrent_portmap.i
        • libtorrent_piece_block.i
        • libtorrent_socket_type.i
        • libtorrent_entry.i
    • Alert Types Integration:
      • Integrated additional alert type interface files to comprehensively cover libtorrent’s alert system:
        • libtorrent_dht_announce_alert.i
        • libtorrent_external_ip_alert.i
        • libtorrent_listen_failed_alert.i
        • libtorrent_listen_succeeded_alert.i
        • libtorrent_incoming_connection_alert.i
        • libtorrent_peer_alert.i
        • libtorrent_dht_direct_response_alert.i
        • libtorrent_dht_outgoing_get_peers_alert.i
        • libtorrent_dht_pkt_alert.i
        • libtorrent_udp_error_alert.i
        • libtorrent_dht_sample_infohashes_alert.i
        • libtorrent_tracker_alert.i
        • libtorrent_dht_lookup.i
        • libtorrent_portmap_alert.i
        • libtorrent_portmap_error_alert.i
        • libtorrent_dht_mutable_item_alert.i
        • libtorrent_dht_put_alert.i
        • libtorrent_session_stats_alert.i
        • libtorrent_peer_log_alert.i
        • libtorrent_read_piece_alert.i
        • libtorrent_dht_stats_alert.i
        • libtorrent_torrent_conflict_alert.i
    • Type Aliases and Templates:
      • Introduced typed_bitfield template for handling different index types, enhancing type safety and flexibility.
    • Operator Renaming:
      • Mapped C++ operators to Java-friendly method names using %rename directives:
        • operator== to op_eq
        • operator!= to op_ne
        • operator< to op_lt
        • operator> to op_gt
        • operator<= to op_lte
        • operator>= to op_gte
        • operator~ to op_inv
        • operator^ to op_xor
        • operator| to op_or
        • operator& to op_and
        • operator[] to op_at
      • Included boost_system_error_code.i for proper error handling.
  • Build Scripts and Dependencies
    • Added New Build Options:
      • Introduced --swig-only and --build-only options to the SWIG/build scripts (run-swig.sh and build.sh).
        • --swig-only: Executes only the SWIG interface generation without initiating the build process.
        • --build-only: Runs only the build process using pre-generated SWIG wrappers, skipping the SWIG generation phase.
      • These options provide developers with greater flexibility during development and testing by allowing selective execution of build stages.
    • Build Script Enhancements:
      • Addedprepare-macos.sh script to automate the installation of dependencies and the required SWIG version on macOS systems.
        • Installs necessary packages using Homebrew (wgetpcre2).
        • Checks and installs SWIG version 4.2.1 if not already present.
        • Verifies successful installation post-build.
      • Updatedrun-swig.sh script to handle platform-specific code adjustments and ensure correct SWIG version usage.
        • Implemented additional sed commands to fix code issues in libtorrent headers before SWIG processing.
        • Added safeguards to handle SWIG failures gracefully, providing informative messages and exiting if necessary.
        • Updated build flags and configurations to align with the latest libtorrent ABI versions.
        • Set TORRENT_ABI_VERSION=4 and updated namespaces for versions 3 and 4.
  • Dependency Upgrades
    • Boost Upgrade:
      • Upgraded Boost library to version 1.86.0 to improve performance and compatibility.
    • OpenSSL Upgrade:
      • Updated OpenSSL to version 1.1.1t to enhance security and support the latest protocols.
    • Gradle Upgrade:
      • Upgraded Gradle to version 8.10.2 to leverage new features and improvements in build automation.
    • Java Development Kit (JDK):
      • Jar built with JDK 11, ensuring compatibility with the build environment.
    • Libtorrent Update:
      • Updated libtorrent to RC_2_0 (rev: 2ab8fedabb7716947edc77958da6d0b5e1040df9) to incorporate the latest fixes and features from the libtorrent 2.0 branch.
    • Android NDK Upgrade:
      • Upgraded Android NDK to version r26d (LTS) from r25c, providing the latest toolchains and platform support.
    • SWIG Upgrade:
      • Upgraded SWIG to version 4.2.1 to improve interface generation and support new language features.
  • Exception and Error Handling
    • Enhanced Exception Handling:
      • Improved exception translation from C++ to Java within SWIG interfaces to ensure robust error management.
  • Compatibility and Performance Fixes
    • Fixed Compatibility Issues:
      • Resolved syntax issues in file_storage.hpp and ip_filter.hpp to ensure successful SWIG processing and avoid compilation errors.
      • Adjusted build flags and macros for Boost and libtorrent compatibility across different platforms.
    • Performance Optimizations:
      • Optimized SWIG typemaps and wrappers for efficient data handling, minimizing performance overhead in Java bindings.
  • Directors and Inheritance
    • Enabled SWIG Directors:
      • Enabled directors for classes requiring Java-side inheritance, facilitating the overriding of C++ virtual methods in Java subclasses:
        • add_files_listener
        • set_piece_hashes_listener
        • alert_notify_callback
        • swig_plugin
        • posix_wrapper
  • Code Clean-up and Maintenance
    • Ignored Deprecated and Internal Elements:
      • Excluded numerous deprecated methods, internal functions, and classes from the SWIG interface to streamline Java bindings and prevent potential conflicts.
    • Removed Redundant Code:
      • Deleted unnecessary %ignore directives and obsolete SWIG configurations to maintain a clean and maintainable interface.
    • Enhanced Documentation:
      • Improved comments and added TODOs for future integrations, such as web_seed_entry.hpp once merged from the master branch.
2.0.11.0
 * Migration to support libtorrent 2.0 integration
 * Maintained 1.2.x on a separate branch without active maintenance; pull requests are welcome
 * SWIG interface files have been modularized for better maintainability and readability
 * Added missing alert types
 * Introduced typed_bitfield template
 * Operator renaming for Java compatibility
 * Included boost_system_error_code.i
 * Added prepare-macos.sh script
 * Updated run-swig.sh script
 * Set TORRENT_ABI_VERSION=4
 * Boost 1.86.0 upgrade
 * OpenSSL 1.1.1t upgrade
 * Gradle 8.10.2 upgrade
 * Jar built with JDK 11
 * Libtorrent updated to RC_2_0 (rev:2ab8fedabb7716947edc77958da6d0b5e1040df9)
 * Android NDK r26d (LTS) upgrade (from r25c)
 * Added `--swig-only` and `--build-only` options to swig/build scripts
 * Added `prepare-macos.sh` script for macOS build setup
 * Updated `run-swig.sh` script for improved SWIG processing 
 * Upgraded SWIG to 4.2.1
 * Enhanced exception handling in SWIG interfaces
 * Fixed issues in file_storage.hpp and ip_filter.hpp
 * Adjusted build flags and macros for Boost and libtorrent compatibility
 * Enabled SWIG directors for specific classes
 * Ignored deprecated methods in SWIG interface
 * Improved documentation and added TODOs
 * 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)

A New FrostWire 6.1.2 for PC, MacOSX and Linux is yours to download.

Download Installers on FrostWire’s Official Website
Download Installers and SourceCode on GitHub

Screenshot of Changelog in Github.com

Full Changelog:

frostwire (6.1.2) stable; urgency=high
  * Search performance improvements. New RxJava-based implementation.
  * Search box suggestions improved.
  * New Check/uncheck all search engines checkbox.
  * TorLock search fixed.
  * Added SSL (https) support for torrent web seeds.
  * Options window remembers last pane opened.
  * Fixes painting issues when searching Starred audio files on the library.
  * frostwire-jlibtorrent library updates.
  * Library user experience bug fixes.
        
 -- FrostWire Team   Wed, 24 Jun 2015 11:44:00 -0500

New FrostWire 5.7.7 available for Windows, Mac and Linux. Contributors now earn bitcoins instantaneously.

Download FrostWire 5.7.7 for Windows (Bitcoin enabled .torrent)
Download FrostWire 5.7.7 for MacOSX (.torrent)
Download FrostWire 5.7.7 for Debian/Ubuntu (.torrent)

This update focuses on fixing multiple user interface issues, mostly related to the media player. Libraries were updated, a nasty freeze when opening FrostWire out of a magnet link has finally been fixed, and new linux collaborators have given some love to our codebase.

Screen Shot 2014-10-02 at 9.50.11 AM

Like on Android, you can now fully stop the player
by long pressing the Play/Pause player button.

FrostWire now has a new feature in which it tries to detect wether or not you are using a VPN connection to warn you about the possibility of your privacy being at risk.

We recommend that whenever you are online you connect to the internet using an encrypted VPN connection to protect your identity and your privacy.

Build & Fix FrostWire, get paid in Bitcoins immediatly
If you are a developer/translator/graphic designer, you should know that now you can earn bitcoins when your patches and contributions are merged to the master branches of our open source projects on github.

You will automatically receive Bitcoins in your Bitcoin wallet, you just need to have a github account and a tip4commit account where you can register your Bitcoin wallet address. Payments are sent within minutes of your patches being merged.

FrostWire Bitcoin donations are being diverted into our main open source projects frostwire-desktop, frostwire-android, frostwire-common and frostwire-jlibtorrent.

Each merged commit gets 1% of what’s left on each fund.

Preparing for FrostWire 6

We are hard at work on the next generation of FrostWire 6, if you paid attention to the names of our repositories, or if you follow this blog, you may have read about the frostwire-jlibtorrent project. We have made a full featured Java wrapper API out of the C++ libtorrent library and the results of our tests have been phenomenal. We’re currently replacing all of our Bittorrent core for one that uses libtorrent and we’re pretty sure you will feel the difference.

Join the FrostWire Beta Testers group to help us release a steady FrostWire 6.

Changelog

frostwire (5.7.7) stable; urgency=high
  * New: VPN connection status indicator.
  * New: Stop media playback by long pressing play/pause button.
  * Fix: Freeze when opening FrostWire from the first time out of
    clicking on a magnet link or .torrent file.
  * Fix: Bug where files couldn't be played with the main player button.
  * Fix: Bug where the speaker icon on the library would still show
    after the media player had stopped.
  * Fix: Bug after 5.7.5 in which the buttons of the Create Torrent
    dialog were not visible unless the window was resized.
  * Fixes issue on Linux when player window pixel translucency could
    not be set. Thanks @foutrelis.
  * Fixes Null Pointer Exception when trying to shutdown and hide
    an MPlayerWindow that may have not been instantiated.
  * Fixes issue where user could not create new playlist by dropping
    songs from existing playlist into 'New Playlist' list item in
    the library.
  * Updated MigLayout source code to version 4.0

 -- FrostWire Team <contact@frostwire.com>  Wed, 01 October 2014 17:00:00 -0500

Is FrostWire Safe?

FrostWire – free at http://www.frostwire.com – is a file sharing
application and media hub.

FrostWire, as a stand-alone application, is 100% safe to use. FrostWire
itself will not install any viruses, adware, malware or spyware. But is
there a way you can get your computer in trouble while using FrostWire?
Sure.

FrostWire connects to other computers & online servers to find the
content you are looking for. FrostWire does not itself create, host or
control the content it finds on the internet – the same way internet
browsers do not create, host, or control the websites & files you view
and download through them. There are some safeguards in place to
recognize and prevent malicious content from showing up in the search
results, but none are perfect. Before you download a file:

1) Check if the file size makes sense for the content type you wish
to download
2) Check the Source link to see file comments other
users have left on the hosting website and most importantly, if you
are a Windows user and do anything online, always
3) Make sure you have an up-to-date anti-virus software installed
and you check any file you download before opening it.

Music Credit: “The Big House” by Jason Shaw

http://freemusicarchive.org/music/Jason_Shaw/
Audionautix_Tech_Urban_Dance/TU-TheBigHouse

Licensed under a Creative Commons Attribution License (CC-BY)
http://creativecommons.org/licenses/by/3.0/us/

Order Free FrostWire Stickers

Order Free FrostWire Stickers

Support FrostWire by spreading the word.
Order your free stickers at http://shop.frostwire.com

Download FrostWire Wynwood 5.6 absolutely free from the official website.
http://www.frostwire.com

FrostWire 5.6.x alpha screenshots

Screen Shot 2013-06-05 at 5.06.59 PM

New Application Header.

Search is the core feature of the app, now there’s a single search box in the application, depending on the context it will search the internet (soon locally WiFi shared files by FrostWire instances, desktop or android), or your local Library files.

Also notice the improved unicode support on the song title showing Chinese characters.
你好!!!

Screen Shot 2013-06-05 at 5.07.32 PM

Now we let you know something we always did, FrostWire always searches for all kinds of files, in the past this wasn’t obvious. See the number of search results per file type shown at the top of the search results, click on those buttons to show the found files for that type.

More search filters are available if you click where it says “Show Options”

A lot of eye candy coming to those search result rows, still alpha.

Screen Shot 2013-06-05 at 5.08.40 PM

One search box to rule them all.

Now the upper search box can be used to search within the library, something that wasn’t very obvious in the past.

EXPERIMENTAL: FrostWire running on OUYA

Download Experimental Build for OUYA

It was a painless journey to get FrostWire to run on OUYA. We just had to add a line on the application manifest and an image so it’d be shown on the OUYA’s “Play” section.

As of now, this experimental build will let you perform downloads, we still have not plugged a keyboard to our OUYA so we couldn’t test search, but we think it should work just fine.

To install you will need to have the Android Development Toolkit installed on your computer.

You can install the apk, simply by connecting the OUYA to your computer via USB, and invoking

adb install frostwire.1.0.8.build90.ouya.apk

Then plug the OUYA to your TV and you should see FrostWire on the Play section ready to be used.

Here are some screenshots of our test run

FrostWire-running-on-OUYA-01

 

FrostWire-running-on-OUYA-05

FrostWire-running-on-OUYA-02 FrostWire-running-on-OUYA-03FrostWire-running-on-OUYA-04

Yay, FrostWire on the TV

 

 

FrostWire 新酷线5.5.6:搜寻速度更快,与archive.org整合以及进一步支援中文语言

立即下载Windows版本

立即下载Mac版本

frostwire-5.5.6-china

新的酷线5.5.6 大幅修改了搜寻技术,借助了安卓版本的代码,可提升中央处理器及记忆体用量的效率,从而减少电池使用量;亦可在较不稳定的网络上得到更快反应时间。

与网际网路档案馆Internet Archive的搜寻应用程序接口整合,酷线用户从此可以存取世界上最大的公用领域线上资料库,以及网上的知识共享作品。超过7百万的作品已被编入索引中,数量还在每天增加中。是次版本更新发布让酷线团队梦想成真!我们深信全球用户都会获益于更深入更广润的内容。

中文及其他语言的支援亦已提高,范围包括搜寻结果显示,资料库显示及媒体播放。

完整修改日志:

FrostWire (5.5.6) 稳定

*新功能:包含archive.org的搜寻结果。Archive.org 已编引了过百万公用领域及网上的知识共享作品。

* 新功能:透用拖放便可排序播放清单

* 修正漏洞:修正多个空指针错误及冲突

* 修正漏洞:修正有关错误读取bitrate字串资料的渲染问题

* 升级:(开发人员) 在酷线安卓版及酷线电脑版都使用了 “frostwire-commons” 内的源码。

*新功能:所有播放清单中的音乐现在可以汇出到资料夹。

* 升级:改善万国码的中文字支援。

* 升级:播放器升级,支援万国码档案播放。

*升级:搜寻引擎技术升级,速度更快。

*升级:从资料库存取mp3. mp4.的资讯更快捷,制作播放清单比从前更快。

* 升级:更明显的Wi-Fi分享图示。

* 升级:广播电台资料库升级。

* 升级:上传当档到档案库的速度快达20%。

* 升级:视频播放器升级,提供更高享受。

*修正漏洞:视频播放时,萤幕保护程式不会启动。

*修正漏洞:在挤塞的本地网络上,点对点wi-fi 共享比以前使用少84%的系统资源。解决了手提电脑用户遇到系统缓慢及电源用量的问题。

*修正漏洞:X11 相关错误纠正

* 修正漏洞:正在共享的档案,包括正在做种子的档

* 修正漏洞:有关万国码的资料库搜寻事宜。