Skip to content

pgs3 0.1.0

Choose a tag to compare

@Vonng Vonng released this 03 Sep 05:44
· 1 commit to main since this release

pgs3 0.1.0

v0.1.0 is the first cleaned and fully documented project release of pgs3, an S3-compatible object-storage endpoint implemented inside PostgreSQL with pgrx.

Versioning note: v0.1.0 is the GitHub project release. The PostgreSQL extension catalog/package version in this source tree remains 0.1.1, preserving the tested 0.1.0 -> 0.1.1 extension-upgrade path.

Status: pgs3 remains early alpha software. Functional and compatibility coverage is broad, but the current small-object and large-Fork performance gates prevent a production-ready claim.

What changed since v0.0.1

  • Added the canonical Apache License 2.0 text and SPDX package metadata.
  • Rebuilt the README into a project-oriented overview with capabilities, architecture, quick start, security model, validation status, documentation map, and contribution guidance.
  • Added complete Cargo repository, homepage, README, and keyword metadata.
  • Consolidated Cargo workspaces under the root target/ directory.
  • Replaced Python bytecode-producing syntax checks with in-memory compilation.
  • Added make clean for Cargo, Python, and regression-test intermediates.
  • Expanded Git and Docker ignore rules for editor files, temporary files, caches, build output, local Ceph checkouts, and generated acceptance evidence.
  • Removed the tracked empty artifact placeholder; generated evidence remains local and outside source releases.

No production S3 or SQL semantic implementation changed between v0.0.1 and v0.1.0.

Current capabilities

  • Path-style S3 endpoint served by PostgreSQL background workers.
  • SigV4 headers, presigned URLs, and AWS streaming payload forms.
  • Bucket, object, range, conditional-write, listing, versioning, delete-marker, CopyObject, and multipart semantics.
  • PostgreSQL role mapping and default-deny RLS tenant isolation.
  • Canonical content deduplication across versions, copies, restores, and bucket forks.
  • Tested client paths for AWS CLI, boto3, rclone, DuckDB httpfs, and s3fs.
  • PostgreSQL 17 and 18 package/runtime paths and a real 0.1.0 -> 0.1.1 extension transition.

Validation

The release-preparation candidate passed formatting, harness/static checks, the 43-test PostgreSQL-independent wire suite, PostgreSQL 18 compilation with Clippy warnings denied, and 103 extension library tests. The recorded package-backed baseline also includes PostgreSQL 17/18 SQL and client matrices, 195 selected Ceph compatibility cases, upgrade testing, reliability scenarios, and malformed-request coverage.

See the acceptance matrix for evidence boundaries and exact results.

Known limitations

  • Fixed small-object GET and PUT performance targets are not met.
  • The authoritative 100,000-object Fork run misses its one-second target.
  • Only path-style S3 URLs are supported; TLS must terminate outside pgs3.
  • IAM/bucket policies, ACLs, lifecycle rules, and cross-database endpoint routing are not implemented.
  • Continuation tokens are not yet server-MAC-protected, and some non-SHA multipart composite checksum behavior remains incomplete.
  • This is a source-only release; no prebuilt binary packages are attached.

Start with the README, quick-start tutorial, operations guide, and known limitations.

Full diff: v0.0.1...v0.1.0