BerthaD is a simple, fast, no-nonsense TCP server to store blobs of data by its SHA256 hash with just three operations:
- PUT – Stores the data on disk and return its hash.
- LIST – Return the hashes of all blobs stored on this server.
- GET – Given the hash of a blob it returns the content of the blob.
This project is a port of the original berthad repository, rewritten in Rust.
- Small codebase.
- No authentication. No SSL. If you don't need them, they are only an overhead.
In order to build the project, you will first need to install Rust. Then, to build for development you can run:
cargo build
To build for production, you can run:
cargo build --release
Usage: berthad <bound host> <port> <data dir> <tmp dir>
bound host
is address or name of the address to be bound. For instance:localhost
or0.0.0.0
.port
is the port on which to bind.data dir
is the directory which will contain the blobs. It must exist.tmp dir
is the directory which will contain the blobs while they are streamed to disk during a PUT.
The protocol is described in PROTOCOL.md.