S3-compatible
SigV4, multipart, range reads, conditional requests and the checksums of current SDKs. Tested with the AWS SDK and the aws-cli. Clients connect through a load balancer with failover.
S3-compatibleencrypteddistributed
parstore encrypts every file, splits it into fragments and spreads them across independent hosters, data centres and countries. If a hoster fails, locks your account or goes bust, your data stays readable. Steal a single store and all you get is encrypted debris.
How it works
A full copy at a second provider doubles the cost and protects against exactly one failure. parstore uses Reed-Solomon codes: any k of k+m fragments restore the whole file. With 4+2, a file survives two hoster failures at the same time with 1.5 times the storage.
Every chunk is encrypted with its own key (AES-256-GCM) before it leaves the gateway. No hoster ever sees plaintext or a key.
The encrypted content is split into k data fragments, and m parity fragments are added.
Each fragment goes to a different hoster, data centre or country. A write is acknowledged only once its protection target is met.
Any k fragments are enough to read. If one is missing, it is rebuilt in the background and stored elsewhere.
File still readable. 4 of 6 fragments reachable, 4 are needed. In the background parstore rebuilds the missing fragments and stores them with other hosters.
Features
From the outside, ordinary S3 storage. On the inside, a system that repairs failures by itself and weighs cost, speed and resilience against each other, always with safety first.
SigV4, multipart, range reads, conditional requests and the checksums of current SDKs. Tested with the AWS SDK and the aws-cli. Clients connect through a load balancer with failover.
Missing or damaged fragments are rebuilt from the others. A scrubber keeps checking checksums without needing any keys.
Scheduled bucket snapshots with retention rules; restore a file, a folder or a whole bucket. Identical content within a customer is stored only once.
Folders, uploads, previews, search, versions and a trash. Share links with password and expiry, file requests for outsiders, personal spaces and retention rules.
Buckets as a drive or folder on Windows, macOS and Linux. Sign-in through the browser, separate access keys per device, automatic updates.
Copies of buckets to SFTP, FTP(S) or S3 servers with a dated versions folder, and backups of such servers into parstore. On signs of an attack a run stops and waits for approval.
Hoster, country and location count as separate failure domains. Per customer you decide in which countries fragments may be stored, for example only in the EU.
Purchase prices per backend, reads from cheap fragments first, and a simulation of which backends can be emptied, with the monthly saving and the one-off move cost.
Start on one server. Further servers join and replicate the metadata over Raft; every server is a gateway. Updates roll out one server at a time, re-encoding runs in the background.
The metadata is backed up regularly, encrypted and erasure-coded across several backends. With the recovery kit, a new instance is restored from it.
Customers with their own portal, team, quotas and access keys. Storage, traffic and requests are recorded hourly per customer and bucket; purchase and sales prices with margin warnings.
Everything the interface can do also works through a self-documenting API with examples. Dangerous actions come with a dry run, confirmation and an audit entry.
Security
Encryption happens before splitting. A single hoster holds only encrypted fragments without names or context, and never more of them than may be lost.
AES-256-GCM with its own key for every chunk. Bucket and tenant keys stay in the management, never with a hoster.
Every fragment carries a checksum and a MAC. Scrubbing finds and repairs damage without ever producing plaintext.
A write is acknowledged only once it is spread according to the rule of its storage class. Tests check this on every build.
Mandatory 2FA with TOTP, roles, session management, Argon2id for passwords and an audit log for every change.
Root and recovery keys can be exported with a passphrase and a fresh second factor, and the export can be test-restored in advance.
Destructive actions have a dry run and a delay: a trash for files, a restore period for buckets and customers.
Who it's for
parstore is a young product in its lab phase. Further access protocols such as SFTP, WebDAV, NFS and SMB are planned.