Oxygen Strata: pluggable stores, starting with S3 and GCS issue #63 closed: completed andymccall opened this · 1 comment
referenced by 2 changes on 3 Oct 2026
andymccall edited ·
referenced by 8 changes on 3 Oct 2026
fc68459cc89b 217b5644a95b 82504d09aefe a5f76c79666c 9f9e72b93e4e 5b033d68726a 8d80356371c5 9aa399044d9d
referenced by 4 changes on 4 Oct 2026
andymccall
Done: Oxygen Strata is built end to end (docs/stores.md is the design and record; docs/strata.md the user guide).
- oxy-core: the Store trait, a directory store (dir://PATH), an in-memory store, the conformance check, and a store remote (oxygen.toml, bundles/, refs moved by compare-and-swap) with a mirror the client runs the hub's own push checks on; merge-and-retry when the record moved; oxy gc --remote with a 7-day grace.
- oxy-strata: S3, Google Cloud Storage and Azure Blob Storage through object_store 0.13 (ring, no aws-lc-rs or crc-fast, so the release cross builds link), credentials from each provider's standard places, settings on the URL.
- CLI: oxy remote add --profile/--region/--endpoint/--credentials, oxy remote check, oxy gc --remote; push, pull and clone through s3://, gs://, az:// and dir://.
- Verified on the real services: conformance 8/8 and repository round trips on S3 (eu-west-2), GCS (europe-west2) and Azure (UK South); a fresh clone of a 9 MB repository pushed to each in about 1.5 s and cloned back in 1 to 2 s.
Later, on the same trait: a Git repository as a plain store, the hub using customer-owned buckets, couriers, and a virtual working copy.
andymccall closed ·
Design in docs/stores.md. A Store trait in oxy-core (local, S3, GCS side by side through the object_store crate), so that oxy push, pull and clone work with s3:// and gs:// remotes. Write-once packs and one refs object updated by compare-and-swap. Credentials from the standard AWS and Google chains. A conformance suite run against every store.