mirror of
https://github.com/ncruces/go-sqlite3.git
synced 2026-01-12 05:59:14 +00:00
410a77392ceb01f6c5ebf4cfb62e53e8cd9739a1
Go bindings to SQLite using Wazero
⚠️ DO NOT USE with data you care about. ⚠️
This is very much a WIP.
Roadmap:
- build SQLite using
zig cc --target=wasm32-wasi :memory:databases- use
test_demovfs.cfor file databases - come up with a simple, nice API:
- idiomatic Go, close to the C SQLite API:
database/sqldrivers can come later, if ever
- implement own VFS to sidestep WASI syscalls:
- locking will be a pain point:
- WASM has no threads
- concurrency is achieved by instantiating the module repeatedly
- file access needs to be synchronized, both in-process and out-of-process
- out-of-process should be compatible with SQLite on Windows/Unix
- locking will be a pain point:
- benchmark to see if this is useful at all:
Random TODO list:
- optimize small allocations that last a single function call;
- …
Languages
Go
89.9%
C
5.2%
WebAssembly
3.5%
Shell
1.4%