| Crates.io | umadb-server |
| lib.rs | umadb-server |
| version | 0.3.3 |
| created_at | 2025-11-14 22:57:16.551637+00 |
| updated_at | 2026-01-17 15:32:05.180089+00 |
| description | gRPC server implementation for UmaDB event store |
| homepage | https://umadb.io |
| repository | https://github.com/umadb-io/umadb |
| max_upload_size | |
| id | 1933694 |
| size | 92,636 |
gRPC server implementation for UmaDB event store.
umadb-server provides the gRPC server implementation that exposes UmaDB's event store functionality over the network. It combines the storage engine (umadb-core), protocol definitions (umadb-proto), and DCB API (umadb-dcb) into a complete server library.
This crate is typically used by the umadb binary to run the server, but can also be embedded in custom applications:
use tokio::signal;
use tokio::sync::oneshot;
use umadb_server::start_server;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let (tx, rx) = oneshot::channel::<()>();
tokio::spawn(async move {
let _ = signal::ctrl_c().await;
let _ = tx.send(());
});
start_server("/path/to/db-file", "127.0.0.1:50051", rx).await?;
Ok(())
}
The server automatically batches concurrent append requests to amortize disk I/O costs while maintaining per-request atomicity and isolation. This significantly improves throughput under concurrent load.
The server supports real-time event subscriptions that:
This crate is part of UmaDB, a high-performance open-source event store built for Dynamic Consistency Boundaries.
Licensed under either of:
at your option.