mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-19 00:11:45 +00:00
74 lines
3.2 KiB
Markdown
74 lines
3.2 KiB
Markdown
# 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
|
|
|
|
## Links
|
|
- https://github.com/frostwire/frostwire-jlibtorrent
|
|
- https://github.com/arvidn/libtorrent
|
|
- https://github.com/XITRIX/iTorrent
|
|
- https://github.com/XITRIX/LibTorrent-Swift
|
|
- https://github.com/danylokos/SwiftyTorrent
|
|
- https://github.com/siuying/peerflix-ios
|
|
- https://github.com/swhitty/FlyingFox
|
|
- https://github.com/swisspol/GCDWebServer
|
|
- https://github.com/johang/vlc-bittorrent
|
|
- https://github.com/Stremio/stremio-shell
|
|
- https://github.com/Stremio/stremio-service
|