dkdc-db

HTAP database system.

dkdc-io/db

dkdc-db #

GitHub Release PyPI crates.io CI License: MIT

HTAP database system. Built-in input validation, SQL safety checks (rejects stacked queries, ATTACH DATABASE, LOAD_EXTENSION), request size limits, structured tracing, and graceful shutdown.

Install #

Recommended:

curl -LsSf https://dkdc.sh/db/install.sh | sh

Pre-built binaries are available for Linux and macOS via Python (uv). Windows users should install via cargo or use macOS/Linux.

uv:

uv tool install dkdc-db

cargo:

cargo install dkdc-db-cli dkdc-db-server

Verify installation:

db --version

You can use uvx to run it without installing:

uvx --from dkdc-db db

Usage #

CLI #

db serve                   # Start multi-database server in tmux
db status                  # Check server status
db logs                    # View recent logs
db attach                  # Attach to tmux session
db stop                    # Stop server

db create mydb             # Create a database
db list                    # List databases
db repl --db mydb          # Interactive SQL REPL
db execute --db mydb "SQL" # One-shot write
db query --db mydb "SQL"   # One-shot OLTP query
db query "SQL"             # Cross-db analytical query

Rust #

use dkdc_db_core::DbManager;

let mgr = DbManager::new().await?;
mgr.create_db("mydb").await?;
mgr.execute("mydb", "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)").await?;
mgr.execute("mydb", "INSERT INTO users VALUES (1, 'alice')").await?;
let results = mgr.query("SELECT * FROM mydb.public.users").await?;

Python #

from dkdc_db import Db

db = Db()  # connects to http://127.0.0.1:4200

# database management
db.create_db("mydb")
print(db.list_dbs())

# write
db.execute("mydb", "CREATE TABLE t (id INT, name TEXT)")
db.execute("mydb", "INSERT INTO t VALUES (1, 'hello')")

# read (analytical, cross-db)
result = db.query("SELECT * FROM mydb.t")

# read (fast path, single db)
result = db.query_oltp("mydb", "SELECT * FROM t")