DonutDB

Lightweight, encrypted column-oriented database engine written in Rust.

Created with ❤️ by @unknownmsv

Features

Architecture

donutdb/
 └── <api_key>/
     ├── meta.ometa        # Metadata (Encrypted)
     ├── schema.oschema    # Schema definitions (Encrypted)
     ├── index.oidx        # Indexes (Encrypted)
     └── data/
         ├── id.odb.part1  # Partitioned data (Encrypted)
         └── ...

Installation

Prerequisites: Rust, Git

git clone https://github.com/unknownmsv/DonutDB.git
cd DonutDB

Config files: api_keys.json

{ "keys": ["test-key"] }

lang.json

{ "1": "01", "2": "02", "a": "alice", "b": "bob" }

Build:

cargo build --release

Usage

Start server:

target/release/donutdb

POST /api/store

{
  "dataset": "users",
  "slot": ["id", "username"],
  "data": [["1", "alice"], ["2", "bob"]]
}

GET /api/store/users/test-key

curl http://localhost:4040/api/store/users/test-key

License

DonutDB License v3:

Roadmap

Download Source Code

Download DonutDB v1.0

Show Your Support

Contact