S3-compatible object storage.One process. One server.
Record Store is a self-hosted object storage service written in Rust. No external database, no message broker, no coordination service alongside it. Your applications keep the AWS SDK they already use — you change the endpoint.
Every listener is configurable. Objects live under one data directory as ordinary files — back it up the way you back up everything else.
What Record Store does
The S3 surface your SDK expects
SigV4 header auth and presigned GET/PUT, streaming objects, ListObjectsV2 with pagination, multipart uploads, bucket versioning with delete markers, per-bucket CORS, CopyObject, byte ranges, conditional headers and SHA-256 checksum validation.
Checked against the real clients
Compatibility runs against boto3, the AWS SDK for JavaScript v3 and the AWS SDK for Go on a live server — bucket and object I/O, listing, multipart completion, presigned requests, browser CORS, ranges, versioning and copy behaviour.
Credentials, policies and an audit trail
Service accounts with rotatable credentials, allow/deny policies where explicit deny wins, temporary credentials, and management roles held separately from S3 access. Storage events go out as HMAC-signed webhooks; deletions are audited.
Encryption at rest, under your key
Chunked AES-256-GCM with a per-object data key wrapped by a master key you supply and control. Record Store never stores that key, and refuses to start rather than making encrypted data silently unreadable.
Share links and embeds, not credentials
A share link gives a person read access to one object through a Record Store page; an embed link gives a site a read-only URL for the bytes. Both are revocable capabilities that name exactly one object — they can never list, write or delete.
What it does not do
Being precise about this is more useful than a longer feature list.
A deployment is one process with one copy of your data. Durability is whatever the storage underneath it gives you — use redundant disks and take backups. Erasure coding is not implemented, and if the machine is gone the service is down until you restore it.
ACLs, Object Lock, UploadPartCopy, server-side encryption headers and AWS's aws-chunked trailing checksums are not implemented. Unsupported operations return an S3 NotImplemented error — they are never silently accepted.
Browser uploads through the console are not resumable. An interrupted upload has to be sent again from the first byte, and the console says so instead of implying otherwise.
Client code
Point the endpoint at 7600. That is the integration.
Use path-style addressing and any credential the deployment authorises. Guides for JavaScript, Next.js, Python, Go and Rust are in the documentation.