Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kipdata/kitesql
SQL as a Function for Rust
https://github.com/kipdata/kitesql
data database embeddings myrocks oltp postgresql query-engine rust rust-lang sql sql-query sql-server sqlite sqlite-database web
Last synced: about 3 hours ago
JSON representation
SQL as a Function for Rust
- Host: GitHub
- URL: https://github.com/kipdata/kitesql
- Owner: KipData
- License: apache-2.0
- Created: 2023-06-05T03:53:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-16T09:55:31.000Z (about 12 hours ago)
- Last Synced: 2025-01-16T10:58:06.054Z (about 11 hours ago)
- Topics: data, database, embeddings, myrocks, oltp, postgresql, query-engine, rust, rust-lang, sql, sql-query, sql-server, sqlite, sqlite-database, web
- Language: Rust
- Homepage:
- Size: 3.03 MB
- Stars: 586
- Watchers: 8
- Forks: 50
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
SQL as a Function for Rust
## 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#### 👉[check more](docs/features.md)
## Examples
```rust
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()?;for tuple in kite_sql.run("select * from t1")? {
println!("{:?}", tuple?);
}
```👉**more examples**
- [hello_word](examples/hello_world.rs)
- [transaction](examples/transaction.rs)## 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
```shell
<90th Percentile RT (MaxRT)>
New-Order : 0.002 (0.004)
Payment : 0.001 (0.025)
Order-Status : 0.053 (0.175)
Delivery : 0.022 (0.027)
Stock-Level : 0.003 (0.019)7815 tpmC
```
#### 👉[check more](tpcc/README.md)## Roadmap
- Get [SQL 2016](https://github.com/KipData/KiteSQL/issues/130) mostly supported
- LLVM JIT: [Perf: TPCC](https://github.com/KipData/KiteSQL/issues/247)## License
KiteSQL uses the [Apache 2.0 license][1] to strike a balance between
open contributions and allowing you to use the software however you want.[1]:
## Contributors
[![](https://opencollective.com/kitesql/contributors.svg?width=890&button=false)](https://github.com/KipData/KiteSQL/graphs/contributors)