Introduction
KiteSQL is a lightweight embedded database inspired by MyRocks and SQLite and completely coded in Rust. It aims to provide a more user-friendly, lightweight, and low-loss RDBMS for Rust programming so that the APP does not rely on other complex components. It can perform complex relational data operations.
Key Features
- A lightweight embedded SQL database fully rewritten in Rust
- Higher write speed, more user-friendly API
- All metadata and actual data in KV Storage, and there is no state component (e.g. system table) in the middle
- Supports extending storage for customized workloads
- Supports most of the SQL 2016 syntax
- Ships a WebAssembly build for JavaScript runtimes
👉check more
WebAssembly
- Build:
wasm-pack build --release --target nodejs(outputs to./pkg; use--target webor--target bundlerfor browser/bundler setups). - Usage:
import from "./pkg/kite_sql.js";
const db = ;
await db.;
await db.;
const rows = db..;
console.log;
- In Node.js, provide a small
localStorageshim if you enable statistics-related features (seeexamples/wasm_index_usage.test.mjs).
Examples
use ;
let kite_sql = path.build?;
kite_sql
.run?
.done?;
kite_sql
.run?
.done?;
let mut iter = kite_sql.run?;
// Query schema is available on every result iterator.
let column_names: = iter.schema.iter.map.collect;
println!;
for tuple in iter
👉more examples
TPC-C
run cargo run -p tpcc --release to run tpcc
- i9-13900HX
- 32.0 GB
- KIOXIA-EXCERIA PLUS G3 SSD
- Tips: TPC-C currently only supports single thread
<90th Percentile RT (MaxRT)>
New-Order : 0.002 (0.005)
Payment : 0.001 (0.003)
Order-Status : 0.057 (0.088)
Delivery : 0.001 (0.001)
Stock-Level : 0.002 (0.006)
<TpmC>
11125 Tpmc
👉check more
Roadmap
- Get SQL 2016 mostly supported
- LLVM JIT: Perf: TPCC
License
KiteSQL uses the Apache 2.0 license to strike a balance between open contributions and allowing you to use the software however you want.