Expand description
CloudHome: low-level cloud storage abstraction.
Each backend (S3, R2, B2, etc.) implements CloudHome – 8 methods for
raw bytes in/out. No encryption, no path layout knowledge, no sync
semantics. Higher-level concerns live in CloudSyncConnection which wraps any
dyn CloudHome and applies the path layout and at-rest protection.
Re-exports§
pub use setup::SetupError;
Modules§
- cloudkit
- CloudKit-backed
CloudHomeimplementation. - dropbox
- Dropbox
CloudHomeimplementation. - google_
drive - Google Drive
CloudHomeimplementation. - oauth_
session - Shared OAuth token lifecycle for the consumer-cloud backends.
- onedrive
- OneDrive
CloudHomeimplementation. - s3
- S3-backed
CloudHomeimplementation. - setup
- Cloud provider setup and management.
- test_
utils - In-process CloudHome implementation for tests. Records every write keyed by cloud_key so tests can read back exactly what landed, and serves reads from the same map — enough to simulate two devices sharing a cloud bucket.
Structs§
- Blob
Body - A blob as a sized stream of already-final bytes: sealed chunks for an
encrypted home, plaintext for a browsable one. Encryption-agnostic and
concrete (no
dyn Stream).next_parthands the bytes to a streaming upload in bounded windows so a large blob is never held whole in memory; the onlycollectis the single-request path for blobs at or below a provider’s multipart threshold. - Cloud
Home Factory - Cloud
Object Version - Opaque provider revision for an exact mutable object.
- Cloud
Versioned Object - Counting
Cloud Home - A cloud home that counts what is asked of it and forwards everything else.
- Exact
Upload - One immutable exact object together with a replayable source for its final stored bytes. Provider adapters derive their own native checksums from this source and can reopen it after an ambiguous create response.
- PreparedO
Auth Cloud Home - Upload
Control - One exact upload’s progress reporting and absolute pause state. Provider request bodies consult this before yielding each network chunk, so pausing stops the active request without closing its upload session; resuming lets that same request continue from the next byte.
Enums§
- Cloud
Access Outcome - Cloud
Access State - Cloud
File Read Error - Cloud
Home Error - Errors from raw cloud storage operations.
- Cloud
Home Join Info - Information needed to join a cloud home from another device.
- Cloud
Runtime Error - A failure to start or execute work on Coven’s cloud runtime.
- Conditional
Write Outcome - Exact
Create Outcome - Exact
Upload Source - Revoke
Outcome - Whether a backend actually withdrew a removed member’s storage credential.
Traits§
- Cloud
Home - Exact
Cloud Home - A cloud home admitted to sync: raw object operations and exact immutable slots are one provider capability, so callers cannot open the home and then ask it to hand back a second provider object.
- Exact
Slot Storage - Low-level cloud storage. Implementations handle a single store.
- Part
Sink - The one per-provider streaming-upload surface: a session that accepts ordered
parts and commits. The central
write_blobdriver opens one of these for a large blob and pumpsBlobBodyparts into it — no backend writes its own upload loop, collect, or progress call.
Functions§
- no_
download_ progress - no_
preparation_ progress - no_
progress - A progress sink that discards its reports. For
writecalls whose payload is a small control file (head pointers, the snapshot) where no per-file progress bar is driven — only the blob outbox surfaces progress. - write_
cloud_ object_ stream
Type Aliases§
- BoxPart
Sink - A boxed
PartSinkborrowing its home for'a. - Cloud
Object Stream - Download
Progress - Reports how many bytes of a cloud object have arrived from the provider. The count is cumulative and advances once per received stream buffer.
- Preparation
Progress - Reports how many plaintext source bytes have been consumed while a durable upload spool is being prepared. Owned because the reader that produces the sealed body retains it for the lifetime of that stream.
- Upload
Progress - Reports how many bytes of a
writehave reached the backend so far. Called with the cumulative byte count as the body uploads; backends that can’t observe sub-call progress call it once at the end with the full size. The count is of the bytes handed towrite(the encrypted payload).