A drop-in S3 API
Works with the tools teams already use: AWS CLI, boto3, and rclone connect unchanged. Objects, buckets, listings, multipart uploads, server-side copy, tagging, and presigned shareable links.
Agent Storage· Trove
Trove is object storage rebuilt from the ground up in Rust as one self-contained binary, with no external database and no master node to fail. It stores millions of small files with a single seek per read, checks every byte against a strong checksum on the way out, and quietly repairs corruption and lost copies in the background. Every node is equal, so any node can answer any request, and you grow by adding machines.
Why Trove
One popular system is fast but has a single master that can take the whole cluster down, and a weak checksum that misses silent corruption. Another is reliable but creates millions of tiny files that exhaust the filesystem, and cannot add disks after setup. A third keeps every file's location in RAM and only offers a mount, not a cloud API.
Storing billions of small files cheaply, safely, and behind a normal S3 API has always meant choosing which downside to live with. Trove was built to stop choosing.
Capabilities
Works with the tools teams already use: AWS CLI, boto3, and rclone connect unchanged. Objects, buckets, listings, multipart uploads, server-side copy, tagging, and presigned shareable links.
A single executable serves an S3 API, a JSON admin API, a simple REST file API for service-to-service use, and an embedded web console, each independently toggled.
Fresh data is kept as fast full copies; as it ages it converts automatically to erasure coding that survives disk loss at about 1.25x cost instead of 3x; cold data can offload to external cloud storage.
A background scanner re-reads stored data, catches silent corruption, and feeds a nine-level priority queue so the most endangered files, down to their last copy, get rebuilt first.
One cluster hosts many isolated customers, each with their own credentials, quotas, usage metering for billing, optional encryption, and placement rules like EU-only.
AES-256 at rest with Trove-managed keys, or customer-supplied keys it never stores, with a unique key for every file.
AWS-style users, groups, roles, and JSON policies with conditions like source-IP and prefix limits, plus short-lived temporary credentials.
Express redundancy as a code spanning regions, data centers, racks, and disks, so copies always land in independent failure domains.
Built different
Masterless: every node runs the same binary on a consistent hash ring, with gossip-based membership. There is no master to crash or bottleneck.
No separate coordination service or database to babysit. Metadata lives in a custom write-ahead log that replays on restart. Minimal dependencies is a rule, not an accident.
Every object carries a strong checksum, verified on read, replacing the collision-prone CRC32 that rivals use. Erasure coding runs on a SIMD-accelerated codec.
Files are appended into large volumes instead of one file each, so a million objects use two filesystem entries, not three million, with the index in memory for one-seek reads.
Predictable tail latency, the one thing the garbage-collected incumbents cannot promise.
Synthesized from careful audits of SeaweedFS, MinIO, and MooseFS, then re-implemented from scratch rather than forked.
By the numbers
Design targets on local SSD, not yet independently benchmarked.
Agent-first
Trove is the storage an agent platform writes to constantly: every conversation sandbox snapshot, every file an agent produces, and the immutable audit trail, all addressed through a standard S3 API its tools already speak. Because any node serves any request and the cluster self-heals, a fleet can read and write at scale without coordinating through a master. Per-tenant isolation and signed share tokens let one agent hand another time-limited access to a single artifact, by intent, not by exposing a bucket.
See HQ running in your own Slack or Teams, on the operating system we built for agents.