huggingface/hf-hub

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

解決する課題

人気の huggingface_hub Python ライブラリに相当する Rust 版として、型安全で使いやすい Rust インターフェースを提供し、Hugging Face Hub API との連携を実現します。これにより、Rust 開発者は Python 環境を必要とせずに AI モデル、データセット、スペースを管理できます。

仕組み

このライブラリは2つの主要なインターフェースを提供します。非同期の HFClient(tokio を使用)と、同期の HFClientSyncblocking 機能で有効化)です。Hub API と連携して、リポジトリ、ファイル、コミット、ブランチ、ユーザープロファイルに対する操作を実行します。また、Xet ストレージバックエンドを介した高性能な転送もサポートしており、ターミナルベースの Hub 連携用に hfrs というコマンドラインツールを提供しています。

対象者

AI アプリケーションやインフラを構築していて、モデルのダウンロード、データセットのアップロード、リポジトリメタデータの管理など、プログラムを通じて Hugging Face Hub と連携する必要がある Rust 開発者。

ハイライト

  • 包括的な Hub 操作: リポジトリの作成、削除、更新、およびファイル、コミット、ブランチの管理をサポートしています。
  • デュアルインターフェース: 様々な Rust ランタイムでの柔軟性を考慮し、非同期呼び出しとブロッキング同期呼び出しの両方を提供します。
  • ストリーミングページネーション: 非同期ストリームを使用し、リストエンドポイントに対するメモリ効率の良い反復処理を実現します。
  • Wasm サポート: wasm32-unknown-unknown 向けにコンパイル可能で、WebAssembly 環境内での Hub 連携(ストリーミングダウンロードと HTTP のみのメソッド経由)を可能にします。
  • CLI ツール: Hub 専用のコマンドラインインターフェースである hfrs が含まれています。

関連

  • プロジェクト
  • Dispatch
  • プロジェクト
  • Dispatch
  • プロジェクト