mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-24 03:34:18 +01:00
0cdf54a8c7704f0eda8ceec9cf8dbcc4fe95d1f9
As it turns out, column affinity is tricky in SQLite... https://www.sqlite.org/datatype3.html#determination_of_column_affinity
Lig
A 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 so you need a SQLite database file for testing.
You can create a databse file with the sqlite3 program:
$ sqlite3 hello.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');
You can then start the Lig shell with:
cargo run hello.db
Developing
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%