https://github.com/aspadax/rustyface
Download Huggingface repositories without the need to install dependencies
https://github.com/aspadax/rustyface
ai cli dataset datasets downloader huggingface model network network-programming rust
Last synced: 6 months ago
JSON representation
Download Huggingface repositories without the need to install dependencies
- Host: GitHub
- URL: https://github.com/aspadax/rustyface
- Owner: AspadaX
- License: mit
- Created: 2024-08-03T12:46:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-30T06:36:08.000Z (8 months ago)
- Last Synced: 2025-09-13T02:56:20.912Z (6 months ago)
- Topics: ai, cli, dataset, datasets, downloader, huggingface, model, network, network-programming, rust
- Language: Rust
- Homepage: https://github.com/AspadaX/RustyFace
- Size: 301 KB
- Stars: 21
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RustyFace
A command line app for downloading Huggingface repositories with Rust.
# Why using this?
RustyFace does not require installing additional dependencies such as `git` or `git lfs` etc. It aims to be lightweight and portable.
In addition to that, RustyFace is friendly to users who live in Mainland China, where HuggingFace accessibility is unstable, as this CLI app adopted a mirror that can be accessed globally.
The mirror site used in this project is `hf-mirror.com`
# How to Install and Use RustyFace
## Quick Installation (Recommended)
The easiest way to install RustyFace is using our installation script that automatically downloads the latest binary for your platform:
### One-line Installation
```bash
curl -sSL https://raw.githubusercontent.com/AspadaX/RustyFace/main/setup.sh | bash
```
Or download and run the script manually:
```bash
wget https://raw.githubusercontent.com/AspadaX/RustyFace/main/setup.sh
chmod +x setup.sh
./setup.sh
```
### Management Scripts
After installation, you can manage RustyFace using these scripts:
**Update to latest version:**
```bash
curl -sSL https://raw.githubusercontent.com/AspadaX/RustyFace/main/update.sh | bash
```
**Uninstall RustyFace:**
```bash
curl -sSL https://raw.githubusercontent.com/AspadaX/RustyFace/main/uninstall.sh | bash
```
## Alternative Installation Methods
### Manual Binary Download
You can download the corresponding binaries for your platform from the [Release section](https://github.com/AspadaX/RustyFace/releases). That way, you can just type this command to download Huggingface repositories:
```
rustyface_windows_x86 --repository sentence-transformers/all-MiniLM-L6-v2 --tasks 4
```
- `rustyface_windows_x86` is the binary file name that you have downloaded from the Release section.
- `--repository` is followed by the `repo_id` of the repository that you want to download from HuggingFace.
- `--tasks` is followed by the number of concurrent downloads. For example, 4 means downloading 4 files at once. It is recommended to use a lower number if your network conditions do not support higher concurrency.
### Installation via Cargo
If you would like to build from source, you need to have Rust installed. For those new to Rust, please refer to the [official installation guide](https://doc.rust-lang.org/cargo/getting-started/installation.html).
#### Install Rust
On Linux and macOS:
```
curl https://sh.rustup.rs -sSf | sh
```
On Windows, you can download the installation executable via this link: https://win.rustup.rs/
#### Install RustyFace
After installing Rust, just type this to your terminal:
```
cargo install rustyface
```
### Use RustyFace to Download Repositories
Try RustyFace out with this simple command line:
```
rustyface --repository sentence-transformers/all-MiniLM-L6-v2 --tasks 4
```
- `--repository` is followed by the `repo_id` of the repository that you want to download from HuggingFace.
- `--tasks` is followed by the number of concurrent downloads. For example, 4 means downloading 4 files at once. It is recommended to use a lower number if your network conditions do not support higher concurrency.
# Configurations
If you would like to use an alternative mirror, or the HuggingFace official base url, you may configure your env like below:
```bash
export HF_ENDPOINT=https://your-endpoint.com
```
# Feedback & Further Development
Any participation is appreciated! Feel free to submit an issue, discussion or pull request. You can find me on WeChat: `baoxinyu2007` or Discord: `https://discord.gg/UYfZeuPy`
# License
This project is licensed under the MIT License. See the LICENSE file for details.
## Packages Used
- [clap](https://crates.io/crates/clap) for command line argument parsing.
- [futures-util](https://crates.io/crates/futures-util) for asynchronous operations.
- [indicatif](https://crates.io/crates/indicatif) for progress bars.
- [log](https://crates.io/crates/log) for logging.
- [reqwest](https://crates.io/crates/reqwest) for HTTP requests.
- [sha2](https://crates.io/crates/sha2) for SHA-256 hashing.
- [tokio](https://crates.io/crates/tokio) for asynchronous runtime.
- [fern](https://crates.io/crates/fern) for logging configuration.
- [chrono](https://crates.io/crates/chrono) for date and time handling.