Created
January 13, 2025 03:35
-
-
Save modster/1def6ec48b3486671710aa0e701db261 to your computer and use it in GitHub Desktop.
Revisions
-
modster created this gist
Jan 13, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,89 @@ # [Deno SQLite3](https://github.com/denodrivers/sqlite3.git) [](https://github.com/denodrivers/sqlite3/releases) [](https://doc.deno.land/https/deno.land/x/[email protected]/mod.ts) [](https://github.com/denodrivers/sqlite3/actions/workflows/ci.yml) [](https://github.com/denodrivers/sqlite3/blob/master/LICENSE) [](https://github.com/sponsors/DjDeveloperr) The fastest and correct module for SQLite3 in Deno. ## Example ```ts import { Database } from "jsr:@db/[email protected]"; const db = new Database("test.db"); const [version] = db.prepare("select sqlite_version()").value<[string]>()!; console.log(version); db.close(); ``` ## Usage Since this library depends on the unstable FFI API, you must pass `--allow-env`, `--allow-ffi` and `--unstable-ffi` flags. Network and FS permissions are also needed to download and cache prebuilt library. You can also just use `--allow-all` / `-A` flag since FFI basically gives full access. ```sh deno run -A --unstable-ffi <file> ``` ## Benchmark  [Benchmark](./bench) based on [just-js/02-sqlite](https://just-js.github.io/benchmarks/02-sqlite.html) See [bench](./bench) for benchmarks source. ## Documentation See [doc.md](https://github.com/denodrivers/sqlite3/blob/main/doc.md) for documentation. Check out the complete API reference [here](https://doc.deno.land/https://deno.land/x/[email protected]/mod.ts). ## Native Library It will download and cache a prebuilt shared library from GitHub releases, for which it will need network and file system read/write permission. If you want to use custom library, then you can set the `DENO_SQLITE_PATH` environment variable, to a fully specified path to the SQLite3 shared library. ## Contributing Code is formatted using `deno fmt` and linted using `deno lint`. Please make sure to run these commands before committing. You can optionally build sqlite3 from source. Make sure that you have the submodule (`git submodule update --init --recursive`). ```sh deno task build ``` When running tests and benchmarks, you use the `DENO_SQLITE_LOCAL=1` env variable otherwise it won't use to locally compiled SQLite library. ```sh DENO_SQLITE_LOCAL=1 deno task bench ``` ## Related - [x/sqlite](https://deno.land/x/sqlite), WASM based. ## License Apache-2.0. Check [LICENSE](./LICENSE) for details. Copyright © 2023 DjDeveloperr