Built by @KipData ███████╗███╗ ██╗ ██████╗██╗ ██╗ ███████╗ ██████╗ ██╗ ██╔════╝████╗ ██║██╔════╝██║ ██╔╝ ██╔════╝██╔═══██╗██║ █████╗ ██╔██╗ ██║██║ █████╔╝ ███████╗██║ ██║██║ ██╔══╝ ██║╚██╗██║██║ ██╔═██╗ ╚════██║██║▄▄ ██║██║ ██║ ██║ ╚████║╚██████╗██║ ██╗ ███████║╚██████╔╝███████╗ ╚═╝ ╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝ ╚══════╝ ╚══▀▀═╝ ╚══════╝ ----------------------------------- 🖕
SQL as a Function for Rust
Introduction
FnckSQL 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. 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
👉check more
Examples
let fnck_sql = DataBaseBuilder::path("./data").build()?; fnck_sql .run("create table if not exists t1 (c1 int primary key, c2 int)")? .done()?; fnck_sql .run("insert into t1 values(0, 0), (1, 1)")? .done()?; for tuple in fnck_sql.run("select * from t1")? { println!("{:?}", tuple?); }
👉more examples
TPC-C
run cargo run -p tpcc --release to run tpcc
- i9-13900HX
- 32.0 GB
- YMTC PC411-1024GB-B
- Tips: TPC-C currently only supports single thread
<90th Percentile RT (MaxRT)> New-Order : 0.003 (0.012) Payment : 0.001 (0.003) Order-Status : 0.054 (0.188) Delivery : 0.021 (0.049) Stock-Level : 0.004 (0.006) <TpmC> 7345 Tpmc
👉check more
Roadmap
- Get SQL 2016 mostly supported
- LLVM JIT: Perf: TPCC
License
FnckSQL uses the Apache 2.0 license to strike a balance between open contributions and allowing you to use the software however you want.