acyclic-objects
The versioned Objects contract, typed provider interface, and first-party gRPC, memory, and optional local providers. Object versions and whole-bucket snapshots are immutable identities; a bucket name is not a substitute for its BucketRef.
The default grpc feature exposes the authenticated remote client. Enable local for the durable embedded provider. The memory provider is for deterministic local tests, not persistence. For a private-CA HTTPS endpoint, use Client::connect_with_ca_certificate and pass the caller-supplied PEM certificate; do not disable TLS verification.
use Client;
# async
Use conditional writes and idempotency keys for retryable mutations. Listings are paginated and bound to a captured view; multipart uploads require an explicit completion manifest. The crate API exposes the transport-independent provider surface, and the v1 protocol defines compatibility semantics.
The local provider fails closed after an uncertain journal write: reads, mutations, and garbage collection return unavailable until the owner closes and reopens the store. Reopen repairs only an incomplete final frame; corruption or a host read error fails recovery. Retrying a mutation after an unavailable result should use its original idempotency key because the last outcome may be uncertain.