pgs3 0.1.0
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.0is the GitHub project release. The PostgreSQL extension catalog/package version in this source tree remains0.1.1, preserving the tested0.1.0 -> 0.1.1extension-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 cleanfor 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.1extension 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