A fast, extensible CLI tool for searching torrents across multiple torrent sites with failover support and pluggable site parsers.
Korean torrent sites are often filled with aggressive advertisements, popups, and scripts.
Searching for a single show can take many minutes and multiple clicks.
- π Search torrents by keyword
- π Supports multiple torrent sites with failover fallback (Multiplexer Nβ1)
- π§© Pluggable site parsers (e.g., TorrentTop, TorrentSome, TorrentRJ)
- π οΈ Built with pure Rust, 100% Rust project
- π§ͺ Full offline unit testing (HTML samples, GitHub Actions CI)
- π¦ Pretty table CLI output
- π©Ί
doctorsubcommand to check site health - πͺ΅ Integrated logging (
RUST_LOG=warnfor errors)
- Rust (stable)
- Cargo
Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shmake run search "μ 곡μ"β β Search completed! (click to expand)
+-----------------------------------------------------+--------------------------------------------------------------+ | Title | Magnet | +-----------------------------------------------------+--------------------------------------------------------------+ | μΈμ κ°λ μ¬κΈ°λ‘μΈ μ 곡μμν.E08.250504.1080p-F1RST | magnet:?xt=urn:btih:a2ecde5ebdd06a486541559ab024c5b734af10aa | | μΈμ κ°λ μ¬κΈ°λ‘μΈ μ 곡μμν.E07.250503.1080p-F1RST | magnet:?xt=urn:btih:3046d9446f0abf746bdb1b19ebc368873b84a8e5 | | μΈμ κ°λ μ¬κΈ°λ‘μΈ μ 곡μμν.E06.250427.1080p-F1RST | magnet:?xt=urn:btih:cff190e74667137cd4c0aa84c4f3df70b1fd7183 | | μΈμ κ°λ μ¬κΈ°λ‘μΈ μ 곡μμν.E05.250426.1080p-F1RST | magnet:?xt=urn:btih:03ad63f4cd3dcdb7cc62733f0ba0bdd754202ec0 | | μΈμ κ°λ μ¬κΈ°λ‘μΈ μ 곡μμν.E04.250420.1080p-F1RST | magnet:?xt=urn:btih:76eed1fede165614410ca66483e9ba3cec1b1653 | | μΈμ κ°λ μ¬κΈ°λ‘μΈ μ 곡μμν.E03.250419.1080p-F1RST | magnet:?xt=urn:btih:c15eccdd1feb967c11863c164ea949cb639ad560 | | μΈμ κ°λ μ¬κΈ°λ‘μΈ μ 곡μμν.E02.250413.1080p-F1RST | magnet:?xt=urn:btih:90792e2be9aee17ca522aae8770503a7d5260415 | | μΈμ κ°λ μ¬κΈ°λ‘μΈ μ 곡μμν.E01.250412.1080p-F1RST | magnet:?xt=urn:btih:ee8ea649250f1abdda5ba3765757ca0f544bf058 | +-----------------------------------------------------+--------------------------------------------------------------+
# Build the project
make build
# Run the project
make run search "keyword"
# Example
make run search "μ 곡μ"
# Run diagnostics
make run doctor
# Run all tests
make testOr using Cargo directly:
cargo run -- search "keyword"
cargo run -- doctor
cargo testmagneta/
.
βββ Cargo.lock
βββ Cargo.toml
βββ LICENSE
βββ Makefile
βββ README.md
βββ config.toml
βββ src
βΒ Β βββ lib.rs
βΒ Β βββ main.rs
βΒ Β βββ site_registry.rs
βΒ Β βββ sites
βΒ Β βββ mod.rs
βΒ Β βββ torrenttop.rs
βΒ Β βββ torrentsome.rs
βΒ Β βββ torrentrj.rs
βββ tests
βββ data
βΒ Β βββ torrenttop
βΒ Β βββ torrentsome
βββ torrenttop_test.rs
Use the doctor subcommand to check which torrent sites are currently reachable:
cargo run -- doctorExample Output:
π Running diagnostics for torrent sites:
+-------------+----------------------------+----------------------+
| Site Name | Site URL | Status |
+-------------+----------------------------+----------------------+
| torrenttop | https://torrenttop151.com | β connection failed |
| torrentrj | https://torrentrj199.com | β
200 OK |
| torrentsome | https://torrentsome192.com | β connection failed |
+-------------+----------------------------+----------------------+
This project uses offline HTML samples for testing:
make testNo external internet access required.
Tests are fully reproducible even in CI environments.
Pull requests are welcome!
Please follow Rust's code style and run:
make fmt
make lintbefore submitting a PR.
This project is licensed under the MIT License.