pgs3 0.0.1
pgs3 0.0.1
This is the first public source release of pgs3, an S3-compatible endpoint implemented as a PostgreSQL extension with pgrx.
Versioning note:
v0.0.1is the GitHub project release tag. The PostgreSQL extension catalog/package version contained in this release is0.1.1, preserving the tested0.1.0 -> 0.1.1extension upgrade path.Status: this is an early, source-only release. It is functionally broad, but it is not yet recommended as a production-ready general-purpose S3 service.
Highlights
- PostgreSQL background workers serve a path-style S3 HTTP endpoint without a sidecar data service.
- SigV4 header and presigned-query authentication, signed/unsigned payloads, and AWS streaming payload forms.
- Tested client coverage for AWS CLI, boto3, rclone, DuckDB
httpfs, and s3fs. - SQL-backed buckets, permanent object version history, delete markers, range reads, conditional writes, CopyObject, multipart upload, restore, and bucket fork.
- PostgreSQL roles and RLS provide tenant isolation; access keys map to restricted database roles.
- Canonical blob storage provides content deduplication and payload sharing across versions, copies, restores, and forks.
- PostgreSQL 17 and 18 package/test paths, including a real
0.1.0 -> 0.1.1extension upgrade. - New Chinese quick-start tutorial and usage guide.
Validation snapshot
The recorded package-backed evidence includes:
- complete PostgreSQL 17 and 18 client matrices;
- 195/195 selected Ceph S3 compatibility cases on PostgreSQL 17;
- PostgreSQL 17/18 SQL semantics and extension-upgrade tests;
- crash recovery, fast stop, SIGHUP reload, hot-standby reads, malformed-request robustness, and deterministic fuzz coverage;
- verified 8 MiB PUT throughput and LIST behavior.
See the acceptance matrix for exact commands, evidence boundaries, and results.
Known limitations
- Fixed small-object GET/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; pgs3 does not terminate TLS.
- Bucket policy, IAM policy language, ACLs, lifecycle rules, and cross-database routing are not implemented.
- Continuation tokens are not yet server-MAC-protected, and some non-SHA multipart composite checksum behavior remains incomplete.
- No prebuilt binary packages are attached to this release; build from source with the pinned toolchain.
Read known limitations, operations, and performance results before deployment.