A terminal-based TUI (Text User Interface) torrent client built in Rust 🫓.
Note: This project is currently under active development and is not yet feature-complete. It is by no means ready for use.
See our roadmap here.
- Parsing and handling Magnet URIs
- Parsing and handling
.torrentfiles - uTP and TCP peer connections
- Full implementation of the BitTorrent protocol
- Completion of libtortillas library
- Frontend TUI (Text User Interface)
- WebTorrent connections: Due to the lack of clear documentation and complex, undocumented protocols WebTorrent support is not currently planned.
We use Nextest for running tests. To run tests locally, you may need to install Nextest:
# Install Nextest (example using pre-built binaries)
# See: https://nexte.st/docs/installation/pre-built-binaries/The default suite should be deterministic and must not depend on public trackers, public peers, or mutable internet state:
cargo nextest run --workspaceTests that intentionally exercise public BitTorrent infrastructure are marked #[ignore] and should only be run explicitly:
cargo nextest run --workspace --run-ignored onlyTest names use this convention:
subject_when_condition_then_expected_result
Examples:
magnet_uri_when_query_is_missing_then_returns_error
peer_stream_when_handshake_is_valid_then_returns_peer_id
Keep tests focused on one behavior, prefer deterministic fixtures with include_str! or include_bytes!, and avoid public network access unless the test is explicitly ignored.
Tortillas is the frontend TUI (Text User Interface) application (what most people want)
There are plans to publish tortillas to registries such as crates.io and the AUR. However, for now, you can install it from source using cargo:
cargo install --git https://github.com/artrixdotdev/tortillasThis will install tortillas to your local Rust toolchain.
Libtortillas is the library that powers the frontend TUI application. It is a library that can be used to build your own frontend application or integrate with existing frontend applications.
cargo add --git https://github.com/artrixdotdev/tortillas libtortillasWe welcome contributions! If you'd like to help improve tortillas, please check out our CONTRIBUTING.md for guidelines and tips.