A fast and efficient CLI-based NZB client written in Rust. This client allows you to download from Usenet servers using NZB files.
- Fast, concurrent downloads using async Rust
- Multiple server support with priority-based failover
- SSL/TLS support
- Progress bars for download tracking
- Simple YAML configuration
- Command-line interface
- Make sure you have Rust installed (https://rustup.rs/)
- Clone this repository
- Build the project:
cargo build --release
- The binary will be available in
target/release/rustnzb
Before downloading, you need to configure at least one Usenet server:
rustnzb add-server --name "MyServer" --host "news.example.com" --port 119 --username "user" --password "pass" --ssl --priority 0 --retention-days 3000
To download content from an NZB file:
rustnzb download path/to/file.nzb --output-dir /path/to/output
If no output directory is specified, files will be saved to the default download directory.
The configuration file is automatically created at first run in the following location:
- macOS:
~/Library/Application Support/com.rustnzb.rustnzb/config.yaml
- Linux:
~/.config/rustnzb/config.yaml
- Windows:
%APPDATA%\rustnzb\config.yaml
An example configuration file (config.example.yaml
) is also created to help you get started. The configuration uses YAML format and includes settings for:
servers:
- name: "Primary Server"
host: "news.example.com"
port: 563
username: "user"
password: "pass"
connections: 10
ssl: true
priority: 0
retention_days: 3000
download:
verify_checksums: true
retry_attempts: 3
auto_repair: true
use_backup_servers: true
speed_limit: 0 # 0 means unlimited
post_processing:
auto_extract: true
cleanup_archives: true
create_folders: true
folder_naming_pattern: "{title} ({category})"
process_par2: true
skip_categories: ["software", "games"]
You can also configure settings via CLI commands:
# Configure download settings
rustnzb configure-download --download-dir ~/Downloads/usenet --max-connections 20
# Configure post-processing
rustnzb configure-post-process --auto-extract true --create-folders true
# View current configuration
rustnzb show-config
- Install Rust using rustup
- Clone the repository
- Run:
cargo build --release
MIT License
Contributions are welcome! Please feel free to submit a Pull Request.