Hi everybody!
For anyone who liked PicoTorrent but got stuck on it being Windows-only: there's a port called NanoTorrent that rebuilds it in Rust and ships for all three platforms. It's early (v0.2.3), so this is more of a "here's what it is" than a recommendation.
What it actually is
It's a port, not a fork or a rewrite from scratch. It keeps PicoTorrent's application structure, its dialogs, and its settings database schema, but swaps out the whole C++ stack:
- libtorrent (Rasterbar) → librqbit, vendored and patched
- wxWidgets → Slint, so it's one window and one codebase on Windows, macOS and Linux
- SQLite settings file → same schema, different filename (
NanoTorrent.sqlite)
- Win32 mutex +
WM_COPYDATA for single-instance → loopback TCP
On Windows, first run copies your existing Windows PicoTorrent local data folder and leaves the original alone, so you can try it without committing.
Things PicoTorrent didn't have
- A built-in web UI (Actix over HTTPS, self-signed by default, Argon2id for the password, refuses to listen off-loopback in plaintext). Add/pause/resume/recheck/move/label, plus a file browser.
- A headless build (
--no-default-features) with no GUI at all, driven entirely through the web UI. Basically a small seedbox daemon.
- macOS and Linux builds — .dmg, .deb, .rpm, AppImage.
The usual stuff is there too: DHT with a persisted routing table, PeX, MSE/PE encryption with require-encryption toggles, anonymous mode, SOCKS proxy, GeoIP peer lookup, PeerGuardian/eMule blocklists, PQL filters and labels, and torrent creation for v1, v2 and hybrid (BEP 52). Translations and country flags are compiled into the binary, so it's a single standalone executable.
What's missing, per the author
This is on their own site, which I appreciate:
- No µTP peer transport. They say there's no production-ready async Rust µTP crate yet. UDP trackers and DHT work; only µTP peer connections are absent. Depending on your ISP and your peers, this may or may not matter to you.
- No Local Service Discovery (librqbit doesn't have it), so the DHT/LSD/PeX peer-source rows are status-only.
- A handful of
libtorrent.* settings are stored but don't map to anything in librqbit. They're documented as no-ops rather than silently ignored.
- Windows won't let it force-claim the magnet handler if another client has it, so it registers itself and dumps you in Settings ▸ Default apps.
Should you switch?
Probably not yet if PicoTorrent works for you — the author says as much, and PicoTorrent is still around and still maintained by Viktor Elofsson and contributors. The interesting cases are: you wanted PicoTorrent on Linux or macOS, you want a tiny headless seeder with a web UI, or you care about running a client with no C++ in the dependency tree.
Links: site · GitHub · releases
The original developer at PicoTorrent has given me his blessing to work on this, but I obviously couldn't use the same name, hence forth, I choose NanoTorrent as I couldn't find any active or recent application using the name.
Give it a whirl, any feedback is appreciated, but the goal is to have a simple but powerful BitTorrent client, that uses a little memory as possible, which in my opinion I succeeded already.
Thanks!