| Crates.io | kite_sql |
| lib.rs | kite_sql |
| version | 0.1.5 |
| created_at | 2025-01-16 10:04:33.434024+00 |
| updated_at | 2026-01-11 00:20:13.024534+00 |
| description | SQL as a Function for Rust |
| homepage | |
| repository | https://github.com/KipData/KipSQL |
| max_upload_size | |
| id | 1519138 |
| size | 2,872,765 |
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.
wasm-pack build --release --target nodejs (outputs to ./pkg; use --target web or --target bundler for browser/bundler setups).import { WasmDatabase } from "./pkg/kite_sql.js";
const db = new WasmDatabase();
await db.execute("create table demo(id int primary key, v int)");
await db.execute("insert into demo values (1, 2), (2, 4)");
const rows = db.run("select * from demo").rows();
console.log(rows.map((r) => r.values.map((v) => v.Int32 ?? v)));
localStorage shim if you enable statistics-related features (see examples/wasm_index_usage.test.mjs).use kite_sql::db::{DataBaseBuilder, ResultIter};
let kite_sql = DataBaseBuilder::path("./data").build()?;
kite_sql
.run("create table if not exists t1 (c1 int primary key, c2 int)")?
.done()?;
kite_sql
.run("insert into t1 values(0, 0), (1, 1)")?
.done()?;
let mut iter = kite_sql.run("select * from t1")?;
// Query schema is available on every result iterator.
let column_names: Vec<_> = iter.schema().iter().map(|c| c.name()).collect();
println!("columns: {column_names:?}");
for tuple in iter {
println!("{:?}", tuple?);
}
👉more examples
run cargo run -p tpcc --release to run tpcc
<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
KiteSQL uses the Apache 2.0 license to strike a balance between open contributions and allowing you to use the software however you want.