Crate Documentation Aegis-DB is built as a Rust workspace with 12 specialized crates.
Architecture Overview ┌─────────────────────────────────────────────────────────────────┐
│ aegis-dashboard (WASM) │
│ aegis-cli (CLI Client) │
├─────────────────────────────────────────────────────────────────┤
│ aegis-server (REST API) │
├──────────────┬──────────────┬──────────────┬────────────────────┤
│ aegis-client │ aegis-query │ aegis-document│ aegis-timeseries │
├──────────────┴──────────────┴──────────────┴────────────────────┤
│ aegis-streaming, aegis-replication │
├─────────────────────────────────────────────────────────────────┤
│ aegis-storage (Backends, WAL, MVCC) │
├─────────────────────────────────────────────────────────────────┤
│ aegis-memory (Arena, Buffer Pool) │
├─────────────────────────────────────────────────────────────────┤
│ aegis-common (Types, Errors, Config) │
└─────────────────────────────────────────────────────────────────┘
Crate Summary Crate Description Key Dependencies aegis-common Core types, config, error handling serde, chrono, uuid aegis-memory Arena allocators, buffer pool crossbeam aegis-storage Pluggable backends, WAL, MVCC lz4, zstd, tokio aegis-query SQL parser, planner, executor sqlparser aegis-document Document store (JSON/BSON) serde_json aegis-timeseries Time series with Gorilla compression chrono aegis-streaming Real-time streaming engine tokio aegis-replication Raft, 2PC, CRDTs, sharding raft-rs aegis-monitoring Metrics and health monitoring prometheus aegis-client Client SDK reqwest, tokio aegis-server REST API server axum, tower aegis-cli Command-line interface clap
Dependency Graph aegis-server
├── aegis-common
├── aegis-storage
├── aegis-query
├── aegis-document
├── aegis-timeseries
├── aegis-streaming
├── aegis-replication
└── aegis-monitoring
aegis-query
├── aegis-common
├── aegis-storage
└── aegis-memory
aegis-storage
├── aegis-common
└── aegis-memory
aegis-replication
├── aegis-common
└── aegis-storage
Building Individual Crates # Build a specific crate
cargo build -p aegis-storage
# Test a specific crate
cargo test -p aegis-storage
# Build with features
cargo build -p aegis-server --features "monitoring,replication"
Feature Flags Crate Feature Description aegis-server tls Native TLS termination aegis-server monitoring Prometheus metrics aegis-server replication Cluster replication aegis-storage compression LZ4/Zstd compression aegis-query full All SQL features
Adding a New Crate Create crate directory: Add to workspace in Cargo.toml: [workspace]
members = [
"crates/aegis-new" ,
# ...
]
Create Cargo.toml: [package]
name = "aegis-new"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
[dependencies]
aegis-common = { path = "../aegis-common" }
Table of contents