Skip to main content

Crate git_lfs_transfer

Crate git_lfs_transfer 

Source
Expand description

Concurrent transfer queue + transfer adapters for git-lfs.

This is the orchestration layer: take a list of objects, call the batch API to negotiate URLs, then drive the actual byte movement (downloads into git_lfs_store::Store, uploads from it). v0 only ships the basic adapter (docs/api/basic-transfers.md); tus, custom, and ssh adapters live in NOTES.md as deferred work.

§Concurrency

Transfer runs at most TransferConfig::concurrency in-flight transfers at once. Each transfer uses its own retry loop with exponential backoff per TransferConfig.

§Sync/async bridge

git_lfs_store::Store is a sync API. Downloads pipe HTTP body bytes through tokio_util::io::SyncIoBridge into a spawn_blocking task that calls store.insert_verified, so we never buffer the full object in memory.

Structs§

Report
Aggregate outcome of a transfer batch.
Transfer
Concurrent transfer queue. One Transfer is bound to one LFS endpoint (the api client) and one local store; create more if you need more.
TransferConfig
Tunables for the transfer queue.

Enums§

Event
Per-object lifecycle events emitted by Transfer::download and Transfer::upload.
TransferError
Why a per-object transfer failed.