mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-06 17:54:20 +01:00
72 lines
1.4 KiB
Markdown
72 lines
1.4 KiB
Markdown
<img src="lig.png" width="200" align="right" />
|
|
|
|
# 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](https://www.sqlite.org/fileformat.html) for testing.
|
|
|
|
You can create a databse file with the `sqlite3` program:
|
|
|
|
```console
|
|
$ 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:
|
|
|
|
```bash
|
|
cargo run hello.db
|
|
```
|
|
|
|
## Developing
|
|
|
|
Run tests:
|
|
|
|
```console
|
|
cargo test
|
|
```
|
|
|
|
Test coverage report:
|
|
|
|
```
|
|
cargo tarpaulin -o html
|
|
```
|
|
|
|
Run benchmarks:
|
|
|
|
```console
|
|
cargo bench
|
|
```
|
|
|
|
Run benchmarks and generate flamegraphs:
|
|
|
|
```console
|
|
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.
|
|
|
|
[MIT license]: https://github.com/penberg/lig/blob/main/LICENSE.md
|