Skip to content

feat(s3): ✨ promote S3 adapter to public API#43

Merged
justapithecus merged 3 commits into
mainfrom
andrew/feat/s3/promotion
Feb 3, 2026
Merged

feat(s3): ✨ promote S3 adapter to public API#43
justapithecus merged 3 commits into
mainfrom
andrew/feat/s3/promotion

Conversation

@justapithecus

Copy link
Copy Markdown
Member
  • Move internal/s3 → lode/s3 (public package)
  • Update all imports across repo
  • Remove "experimental" language from docs
  • Add S3 section to PUBLIC_API.md with usage examples
  • Add "Supported Backends" section to README.md
  • Update docs/ARCH_INDEX.md to reflect new location
  • Update Taskfile.yaml for new test paths

Contract compliance verified against CONTRACT_STORAGE.md:

  • Put: Atomic immutability via If-None-Match
  • Get/Exists/Delete: Standard ErrNotFound semantics
  • List: Full pagination, all matching keys returned
  • ReadRange: True HTTP Range reads, all bounds checked
  • ReaderAt: Concurrent-safe random access

Supported backends: AWS S3, MinIO, LocalStack, Cloudflare R2

- Move internal/s3 → lode/s3 (public package)
- Update all imports across repo
- Remove "experimental" language from docs
- Add S3 section to PUBLIC_API.md with usage examples
- Add "Supported Backends" section to README.md
- Update docs/ARCH_INDEX.md to reflect new location
- Update Taskfile.yaml for new test paths

Contract compliance verified against CONTRACT_STORAGE.md:
- Put: Atomic immutability via If-None-Match
- Get/Exists/Delete: Standard ErrNotFound semantics
- List: Full pagination, all matching keys returned
- ReadRange: True HTTP Range reads, all bounds checked
- ReaderAt: Concurrent-safe random access

Supported backends: AWS S3, MinIO, LocalStack, Cloudflare R2
- Remove exported ClientConfig, NewClient, NewLocalStackClient,
  NewMinIOClient, NewR2Client from public API
- Add internal helpers in integration_test.go for test-only use
- Add detailed provider-specific examples to PUBLIC_API.md
  (AWS S3, LocalStack, MinIO, Cloudflare R2)
- Update s3_experimental example to use AWS SDK directly
- Update IMPLEMENTATION_PLAN.md to reflect S3 promotion status

Addresses review finding: public API expansion beyond agreed direction.
Client construction remains the caller's responsibility using AWS SDK.
@justapithecus justapithecus changed the title feat(s3): ✨ promote S3 adapter to public API (v0.2.0) feat(s3): ✨ promote S3 adapter to public API Feb 3, 2026
@justapithecus justapithecus merged commit 7b8ec37 into main Feb 3, 2026
4 checks passed
@justapithecus justapithecus deleted the andrew/feat/s3/promotion branch February 3, 2026 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant