ForkNous ResearchNous Researchpublished Oct 23, 2024seen 5d

NousResearch/hf-hub

forked from huggingface/hf-hub

Open original ↗

Captured source

source ↗
published Oct 23, 2024seen 5dcaptured 9hhttp 200method plain

NousResearch/hf-hub

Description: Rust client for the huggingface hub aiming for minimal subset of features over huggingface-hub python package

Stars: 5

Forks: 4

Open issues: 2

Created: 2024-10-23T15:22:27Z

Pushed: 2024-11-18T21:21:03Z

Default branch: main

Fork: yes

Parent repository: huggingface/hf-hub

Archived: no

README: This crates aims to emulate and be compatible with the huggingface_hub python package.

compatible means the Api should reuse the same files skipping downloads if they are already present and whenever this crate downloads or modifies this cache it should be consistent with huggingface_hub

At this time only a limited subset of the functionality is present, the goal is to add new features over time. We are currently treating this as an internel/external tool, meaning we will are currently modifying everything at will for out internal needs. This will eventually stabilize as it matures to accomodate most of our needs.

If you're interested in using this, you're welcome to do it but be warned about potential changing grounds.

If you want to contribute, you are more than welcome.

However allowing new features or creating new features might be denied by lack of maintainability time. We're focusing on what we currently internally need. Hopefully that subset is already interesting to more users.

How to use

Add the dependency

cargo add hf-hub # --features tokio

tokio feature will enable an async (and potentially faster) API.

Use the crate:

use hf_hub::api::sync::Api;

let api = Api::new().unwrap();

let repo = api.model("bert-base-uncased".to_string());
let _filename = repo.get("config.json").unwrap();

// filename is now the local location within hf cache of the config.json file

SSL/TLS

When using the `ureq` feature, you will always use its default TLS backend which is rustls.

When using `tokio`, by default default-tls will be enabled, which means OpenSSL. If you want/need to use rustls, disable the default features and use rustls-tls in conjunction with tokio.

Notability

notability 1.0/10

Low-star fork, routine activity.