From 3c7382d27f98fd8992f002b725443a60ad0ec929 Mon Sep 17 00:00:00 2001 From: JP Date: Sun, 2 Aug 2026 17:17:08 -0700 Subject: [PATCH 1/3] Bump libtorrent submodule to 2.1 (RC_2_1) Switch libs/libtorrent from RC_2_0 (2.0.13) to RC_2_1 (v2.1.0 + 122 bugfix commits). Groundwork for WebTorrent support (#18): 2.1 ships the WebRTC/WebSocket-tracker code, kept disabled for now (webtorrent=OFF) until the libdatachannel + TLS toolchain work lands. No JNI changes needed; RC_2_1 adds deps/libdatachannel and deps/asio-gnutls submodules (only built when webtorrent=ON). --- README.md | 4 ++-- app/src/main/cpp/CMakeLists.txt | 2 ++ libs/libtorrent | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 68fc758..dfb71ff 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ https://github.com/user-attachments/assets/6182efdb-9862-47ee-9fa7-011a64ee87eb | Layer | Technology | |---|---| -| BitTorrent engine | [libtorrent-rasterbar](https://libtorrent.org) RC_2_0 (C++17, BSD-3-Clause) | +| BitTorrent engine | [libtorrent-rasterbar](https://libtorrent.org) RC_2_1 (C++17, BSD-3-Clause) | | Native bridge | Android NDK r29, JNI (`torrent_jni.cpp`) | | Build system | CMake 3.22, Gradle AGP 9.0.1 | | Language | Kotlin 2.3.20 | @@ -109,7 +109,7 @@ SimpleTorrent/ │ └── res/ │ ├── drawable/ # Adaptive icon (vector magnet) │ └── xml/file_provider_paths.xml -├── libs/libtorrent/ # Git submodule (RC_2_0 branch) +├── libs/libtorrent/ # Git submodule (RC_2_1 branch) ├── .github/workflows/android.yml # CI pipeline ├── LICENSE # MIT (app) + BSD-3-Clause (libtorrent) └── README.md diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt index f42edc5..773d874 100644 --- a/app/src/main/cpp/CMakeLists.txt +++ b/app/src/main/cpp/CMakeLists.txt @@ -17,6 +17,8 @@ endif() set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(encryption OFF CACHE BOOL "" FORCE) +# WebTorrent (libtorrent 2.1+) needs libdatachannel + a TLS stack; staged for later +set(webtorrent OFF CACHE BOOL "" FORCE) set(dht ON CACHE BOOL "" FORCE) set(build_tests OFF CACHE BOOL "" FORCE) set(build_examples OFF CACHE BOOL "" FORCE) diff --git a/libs/libtorrent b/libs/libtorrent index 8d58b0e..8726401 160000 --- a/libs/libtorrent +++ b/libs/libtorrent @@ -1 +1 @@ -Subproject commit 8d58b0e78b9d646c3ccce433bc52d58f341908ed +Subproject commit 87264011d17e167a50149a3b7e212f8205ca0416 From 05fb80f2e03c824fbf962573d3e15b96c41ce196 Mon Sep 17 00:00:00 2001 From: JP Date: Sun, 2 Aug 2026 17:25:16 -0700 Subject: [PATCH 2/3] Add "Sintel as WebTorrent" sample with wss:// trackers New Sample Torrents row pointing at the same Sintel torrent through the modern WebTorrent trackers (tracker.webtorrent.dev, openwebtorrent.com, btorrent.xyz) plus the webtorrent.io web seed. Groundwork for #18: once the engine is built with webtorrent=ON this row demonstrates sharing with browser peers; until then it still downloads via DHT. --- .../java/com/jpcottin/simpletorrent/data/SampleTorrents.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt b/app/src/main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt index 3b82826..55859d3 100644 --- a/app/src/main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt +++ b/app/src/main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt @@ -22,6 +22,11 @@ val SAMPLE_TORRENTS = listOf( "Blender film, CC BY 3.0", "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent", ), + SampleTorrent( + "Sintel as WebTorrent", + "Same film via wss:// trackers — shares with browser peers (webtorrent.io)", + "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=wss%3A%2F%2Ftracker.webtorrent.dev&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.btorrent.xyz&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent", + ), SampleTorrent( "Tears of Steel", "Blender film, CC BY 3.0, includes subtitles", From 1c930b084f0c5f324fe43c11a398665b16b5bbad Mon Sep 17 00:00:00 2001 From: JP Date: Sun, 2 Aug 2026 17:34:05 -0700 Subject: [PATCH 3/3] Soften WebTorrent sample description Browser-peer sharing isn't live until the engine builds with webtorrent=ON; don't claim it in the UI yet. --- .../main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt b/app/src/main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt index 55859d3..42bec37 100644 --- a/app/src/main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt +++ b/app/src/main/java/com/jpcottin/simpletorrent/data/SampleTorrents.kt @@ -24,7 +24,7 @@ val SAMPLE_TORRENTS = listOf( ), SampleTorrent( "Sintel as WebTorrent", - "Same film via wss:// trackers — shares with browser peers (webtorrent.io)", + "Same film with wss:// trackers — WebTorrent demo, browser-peer support coming", "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=wss%3A%2F%2Ftracker.webtorrent.dev&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=wss%3A%2F%2Ftracker.btorrent.xyz&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent", ), SampleTorrent(