snapdir stores library.
Storage backends for snapdir snapshots plus the store-routing and external-store shim that implement snapdir's store dispatch:
- [
FileStore] — the in-processfile://backend. - [
S3Store] — the native AWS-SDKs3://backend (ring rustls). - [
B2Store] — the native AWS-SDKb2://backend, pointed at Backblaze B2's S3-compatible endpoint (wraps [S3Store] with a custom endpoint). - [
GcsStore] — the nativegoogle-cloud-storagegs://backend (ring rustls; ADC credential chain). - [
router] — scheme → adapter resolution, including the hardcodedgs://→gcsspecial case for the Google Cloud Storage adapter. - [
shim] ([ExternalStore]) — the emit-command shim that dispatches third-partysnapdir-<name>-storebinaries via the documentedget-manifest-command/get-fetch-files-command/get-push-commandcontract. - [
transfer] ([TransferConfig], [RateLimiter], [run_concurrent]) — the concurrency + bandwidth-limiting foundation each store carries via a [TransferConfig] for the (later) concurrent transfer loops. - [
adaptive] ([AdaptiveGate], [AdaptiveController]) — pure, injectable adaptive control: a resizable concurrency permit pool (async + blocking) plus a deterministic slow-start/AIMD controller that turns injected op samples + system metrics into a concurrency limit and target byte-rate (wiring into the live transfer loops is a later gate). - [
stream] ([StreamStore]) — object/manifest-level, content-addressed, verified read/write primitives (the foundation for store-to-store sync), implemented for [FileStore], [S3Store], [GcsStore], and [B2Store]. - [
sync] ([sync_snapshot], [SyncReport]) — streaming store-to-store snapshot copy: walks a source manifest and copies its raw objects source → dest through memory only (no local filesystem staging), parallelized across a rayon pool and throttled by aBlockingRateLimiter; writes the manifest last (all-or-nothing).