KiteSQL
A lightweight embedded relational database and native Rust data API, fully written in Rust, supporting SQL execution, typed ORM models, RocksDB/LMDB backends, WebAssembly, and Python bindings.
At a Glance
Free to use, modify, and distribute under the Apache License 2.0.
Engagement
Available On
Listed Jun 2026
About KiteSQL
KiteSQL is a lightweight embedded relational database written entirely in Rust, maintained by the KipData organization on GitHub under the Apache 2.0 license. It is inspired by MyRocks and SQLite and is designed to be embedded directly into Rust applications without relying on external services or heavyweight infrastructure. The project is actively developed, with its repository last updated in June 2026.
What It Is
KiteSQL occupies the category of embedded relational databases — similar in spirit to SQLite but built natively for Rust. Rather than wrapping a C library, it provides a Rust-native relational API alongside direct SQL execution, so developers can interact with a relational store using idiomatic Rust code or raw SQL statements. All metadata and actual data are stored in a key-value backend, with no intermediate stateful service layer.
Core Capabilities
- Direct SQL execution supporting most of the SQL 2016 syntax
- Typed ORM via
#[derive(Model)]with schema migration, projections, and builder-style query/mutation workflows - Multiple storage backends: RocksDB (default, write-optimized), LMDB (read-optimized), and in-memory (for tests and temporary workloads)
- Optimistic transactions available on native targets via
build_optimistic() - Checkpoint support for consistent local snapshots (backend-dependent)
- Interactive shell (
kitesql-shell) for ad-hoc SQL queries and metacommands - WebAssembly build via
wasm-packfor Node.js, browser, and bundler targets - Python bindings via PyO3 behind the
pythonCargo feature
Storage Backend Tradeoffs
KiteSQL ships three storage builders on native targets. The README notes that LMDB shines when reads dominate, while RocksDB is generally the stronger choice for write-heavy workloads. An in-memory builder is available for tests and ephemeral workloads. A TPC-C benchmark included in the repository compares KiteSQL LMDB, KiteSQL RocksDB, and two SQLite configurations across a 720-second run on an i9-13900HX machine; the raw results are recorded in tpcc/README.md.
ORM and Schema Migration
The built-in ORM is enabled via the orm Cargo feature flag. Developers annotate Rust structs with #[derive(Model)] to define typed models, and KiteSQL handles tuple mapping, schema creation, and migration for common changes such as adding, dropping, renaming, and changing columns. A builder-style API covers queries (from, eq, gte, project, asc, limit, fetch) and mutations (update, set, delete), keeping most data-access logic close to the Rust model definition rather than in hand-written SQL.
Multi-Runtime Deployment
Beyond native Rust, KiteSQL targets two additional runtimes. The WebAssembly build (wasm-pack build --release --target nodejs) exposes a WasmDatabase class for JavaScript environments. The Python binding (kite_sql.Database) supports in-memory and file-backed RocksDB or LMDB databases, constructed explicitly with Database(path, backend="rocksdb") or Database.in_memory(). This multi-runtime approach lets the same embedded database engine serve Rust, JavaScript, and Python workloads from a single codebase.
Current Status
The repository was created in June 2023 and last pushed in June 2026, indicating active ongoing development. The project roadmap lists completing SQL 2016 support and adding LLVM JIT compilation as tracked goals. KiteSQL participates in the Open Source Promotion Plan (OSPP) and has an active contributor community visible via OpenCollective.
Community Discussions
Be the first to start a conversation about KiteSQL
Share your experience with KiteSQL, ask questions, or help others learn from your insights.
Pricing
Open Source
Free to use, modify, and distribute under the Apache License 2.0.
- Full embedded relational database
- RocksDB and LMDB storage backends
- In-memory storage
- Typed ORM with schema migrations
- WebAssembly build
Capabilities
Key Features
- Lightweight embedded relational database written in Rust
- Direct SQL execution supporting most SQL 2016 syntax
- Typed ORM with #[derive(Model)] and schema migrations
- Builder-style query and mutation API
- RocksDB-backed persistent storage
- LMDB-backed persistent storage
- In-memory storage for tests and temporary workloads
- Optimistic transaction support on native targets
- Database checkpoint for consistent local snapshots
- Interactive shell (kitesql-shell) with metacommands
- WebAssembly build for Node.js, browser, and bundler targets
- Python bindings via PyO3
- TPC-C benchmark suite with dual-mode SQLite comparison
- Extensible storage integration for custom workloads
- All data stored in KV storage with no intermediate service layer
