mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-27 04:54:21 +01:00
8b0d4e731afd33ce1d166a51eec7e7132b7d0b83
Lig
A modern SQLite-compatible database library built with Rust.
Features
- Asynchronous I/O support (wip)
- WebAssembly bindings (wip)
- SQLite file format compatibility (read-only)
Getting Started
Lig is currently read-only. You can either use the sqlite3 program to create a database:
$ sqlite3 database.db
SQLite version 3.42.0 2023-05-16 12:36:15
Enter ".help" for usage hints.
sqlite> CREATE TABLE users (id INT PRIMARY KEY, username TEXT);
sqlite> INSERT INTO users VALUES (1, 'alice');
sqlite> INSERT INTO users VALUES (2, 'bob');
or use the testing script to generate one for you:
./testing/gen-database.py
You can then start the Lig shell with:
$ cargo run database.db
Welcome to Lig SQL shell!
> SELECT * FROM users LIMIT 1;
|1|Cody|Miller|mhurst@example.org|525.595.7319x21268|33667 Shaw Extension Suite 104|West Robert|VA|45161|`
Developing
Run tests:
cargo test
Test coverage report:
cargo tarpaulin -o html
Run benchmarks:
cargo bench
Run benchmarks and generate flamegraphs:
echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid
cargo bench --bench benchmark -- --profile-time=5
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Lig by you, shall be licensed as MIT, without any additional terms or conditions.
Description
Languages
Rust
76.8%
Tcl
6.6%
C
6.4%
Dart
2.4%
Java
2.3%
Other
5.3%