NuvioStreaming/docs/TORRENT_ENGINE_RESEARCH_2026-02-19.md

3.2 KiB

Torrent Engine Research (2026-02-19)

Scope

  • Android torrent streaming engine choice and viability.
  • iOS/tvOS torrent engine choice and integration strategy.
  • Check requested references (Stremio, vlc-bittorrent) and pick lowest-risk modern path.

Android Findings

Selected

  • frostwire/frostwire-jlibtorrent
    • GitHub: 498 stars, recently updated.
    • Works directly from Android/Kotlin, stable JVM binding around libtorrent.
    • Current branch now uses 2.0.12.7 artifacts from FrostWire Maven.

Why

  • Native Android integration is straightforward compared to desktop-plugin or Node-sidecar designs.
  • Mature dependency chain and direct access to session/piece priority APIs.

iOS Findings

Core Engine

  • arvidn/libtorrent remains the strongest base core.

Real-World iOS References

  • XITRIX/iTorrent
    • 2,953 stars, actively maintained.
    • Uses libtorrent-rasterbar and local HTTP serving for playback.
  • XITRIX/LibTorrent-Swift
    • Active Swift wrapper used by iTorrent.
  • danylokos/SwiftyTorrent
    • Useful reference, but older push cadence and older toolchain approach.
  • siuying/peerflix-ios
    • Archived and stale; not suitable for modern production path.

Local HTTP Layer

  • swisspol/GCDWebServer is archived.
  • swhitty/FlyingFox is active and supports range-friendly file serving patterns.

Requested Check: johang/vlc-bittorrent

  • Valuable as VLC plugin reference, but not a direct RN iOS integration path.
  • Architecture is plugin-for-VLC, not embedded app-native bridge for Nuvio.

Stremio Research Summary

  • stremio-shell desktop runtime expects a separate streaming server flow.
  • stremio-service packaging is desktop-oriented.
  • This confirms Nuvio mobile should use embedded native torrent engine modules per platform, not desktop service porting.

Decision

  1. Android: stay on jlibtorrent-based native module (already integrated).
  2. iOS/tvOS: use libtorrent core + Swift bridge + local HTTP range bridge (prefer active server stack like FlyingFox or equivalent custom).
  3. Keep one JS contract across platforms (prepareStream/stopStream/stopAllStreams) with platform-native implementations.

Data Points (GitHub API, 2026-02-19)

  • frostwire/frostwire-jlibtorrent: stars 498, pushed 2026-02-14
  • arvidn/libtorrent: stars 5,847, pushed 2026-02-18
  • XITRIX/iTorrent: stars 2,953, pushed 2026-01-29
  • XITRIX/LibTorrent-Swift: stars 8, pushed 2026-02-03
  • danylokos/SwiftyTorrent: stars 128, pushed 2024-04-20
  • siuying/peerflix-ios: stars 84, archived, pushed 2017-03-18
  • swisspol/GCDWebServer: stars 6,615, archived, pushed 2022-10-05
  • swhitty/FlyingFox: stars 626, pushed 2026-01-23
  • johang/vlc-bittorrent: stars 472, pushed 2026-02-04