fURL (furl-cli)
A fast, multithreaded CLI downloader built in Rust.
furl is a high-performance command-line tool designed to download files faster by utilizing multiple threads to fetch chunks of data concurrently. Inspired by the simplicity of cURL and the robustness of wget.

[!NOTE] furl is a successor to my previous project ghimiresdp/rust-raid's
cgetdownload manager. It incorporates refined logic and improved multithreading from that original implementation.
✨ Features
- Parallel Downloads: Automatically splits large files into chunks and downloads them across multiple threads.
- Modern Async: Built on top of
tokioandreqwestfor maximum efficiency. - Visual Progress: Beautiful, real-time progress bars using
indicatif. - Rust Powered: Memory-safe and "fearless" concurrency.
🚀 Installation
From Crates.io (Recommended)
From Source
🛠 Usage
without output directory
when no output directory is passed, it automatically downloads the file in the current terminal directory (PWD).
Example:
with output directory
Example:
🗺 Roadmap
- Multithreaded chunk downloading
- Customize number of threads with arguments
- Basic CLI argument parsing (clap)
- Real-time progress bars
- Resume interrupted downloads (Checkpoints)
- Support for Proxy and Basic Auth
- Config file support (furl.toml)
🤝 Contributing
Contributions are welcome! Since this is a WIP, please open an issue first to discuss the changes you'd like to make.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature')` - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For more details, please check CONTRIBUTING.md.
📄 License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Third-Party Licenses
This software uses several open-source components. You can view the full list of
dependencies and their licenses using cargo-license: