Skip to content

pgs3 0.0.1

Choose a tag to compare

@Vonng Vonng released this 03 Sep 05:22
· 2 commits to main since this release

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.1 is the GitHub project release tag. The PostgreSQL extension catalog/package version contained in this release is 0.1.1, preserving the tested 0.1.0 -> 0.1.1 extension 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.1 extension 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.