S3 Compatibility Matrix

Review the tested and intentionally excluded Amazon S3 behavior in the current RustFS compatibility gate.

RustFS implements a tested subset of the Amazon S3 API. This matrix summarizes the executable Ceph s3tests lists maintained in rustfs/rustfs; it does not claim complete coverage of every standard or vendor-specific S3 behavior.

The snapshot below was verified against RustFS commit 1e6f5f1e on August 9, 2026.

Status legend

StatusMeaning
✅ TestedCovered by the default or lifecycle compatibility gate
❌ PlannedStandard behavior tracked as not yet implemented
⊘ ExcludedVendor-specific, intentionally unsupported, or outside the default gate

Executable test lists

ListCasesRole
Implemented tests455Standard cases expected to pass in the default gate
Lifecycle behavior tests5Expiration cases run in the dedicated lifecycle gate
Unimplemented tests17Standard behavior that remains planned
Excluded tests270Cases that do not block the RustFS compatibility gate

Counts ignore blank lines and comments. They change as tests move between lists, so use the linked files for the latest result.

Bucket operations

CapabilityStatusScope
Create, delete, list, and inspect buckets✅ TestedCommon bucket lifecycle operations
Bucket tagging✅ TestedPut, get, and delete tagging
Bucket policies✅ TestedPut, get, and delete policies
Public access block✅ TestedPut, get, and delete configuration
Selected versioning, Object Lock, CORS, and lifecycle behavior✅ TestedOnly the cases present in the implemented lists
Bucket access logging❌ PlannedTracked in the unimplemented list
Bucket ownership controls❌ PlannedTracked in the unimplemented list
ACL authorization⊘ ExcludedIntentionally unsupported product behavior

Object operations

CapabilityStatusScope
Put, get, copy, inspect, and delete objects✅ TestedCommon object operations
Prefix, delimiter, marker, and max-keys listing behavior✅ TestedListObjects and ListObjectsV2
Range and conditional reads✅ TestedSelected HTTP range and precondition cases
User metadata and object tagging✅ TestedMetadata and tag round trips
Presigned GET and PUT URLs✅ TestedSelected signature and request cases
SSE-C and selected SSE-KMS behavior✅ TestedRustFS-managed object round trips only
POST Object form checksum handling❌ PlannedTracked in the unimplemented list

Encrypted object formats are not portable between RustFS and other S3 implementations. A passing encryption test means RustFS can read objects that RustFS encrypted; it does not guarantee that RustFS can read an encrypted object copied directly from another implementation.

Multipart operations

CapabilityStatusScope
Create, upload parts, complete, and abort✅ TestedCore multipart upload workflow
Selected multipart copy, checksum, and object-attribute behavior✅ TestedCases present in the implemented list
Multipart upload listing and part-lookup edge cases⊘ ExcludedNot part of the default compatibility gate

Source of truth

The repository S3 compatibility matrix explains the gate and its update rule. The executable files under scripts/s3-tests determine the current result. When a feature changes, update the test lists and both published matrices together.

On this page