InlaySQL v0.0.5
InlaySQL v0.0.5
The engine, three ways: the inlaysql CLI (and MCP server),
the WASM module for JavaScript, and the C-ABI shared libraries
any FFI language can load in-process — the SQLite-like shape,
no server.
Artifacts
| file | what it is |
|---|---|
inlaysql-0.0.5-x86_64-unknown-linux-gnu.tar.gz |
the CLI + MCP server (Linux) |
inlaysql-ffi-0.0.5-aarch64-apple-darwin.tar.gz |
C-ABI library (macOS, Apple silicon) |
inlaysql-ffi-0.0.5-x86_64-unknown-linux-gnu.tar.gz |
C-ABI library (Linux) |
inlaysql-wasm-0.0.5.tar.gz |
WASM module + the JS glue |
Each .tar.gz ships beside a .sha256; verify with
sha256sum -c <file>.sha256.
No Windows build: the file layer is Unix-only today
(pread/pwrite, advisory locks) — a Windows port has not
been written. The WASM module runs anywhere a browser or
Node does, Windows included.
Using the C-ABI libraries
Each FFI archive carries the 0.0.5 library, the
inlaysql.h header, and the wrappers/ directory — a
one-file class per language (inlaysql.php, inlaysql.py,
inlaysql.rb, InlaySQL.cs, InlaySQL.java), each the whole
binding for its language. Copy the one you need and open the
file like SQLite; the quickest introduction, with copy-paste
quickstarts for all five, is
docs/clients.md.
Updated 2026-09-08 — what changed on main since this tag. The
inlaysql.php and inlaysql.py in this archive are the first, thin
clients (run/query/first, positional parameters, one exception
type). main now carries their second edition — execute with
rows_affected and last_insert_id, query returning iterable rows,
insert(table, row) returning the id, transaction(fn) with rollback and
conflict retry, :name parameters, typed exceptions — and the ABI grew
last_insert_id on the written outcome to support it, so those files need
the next library, not this one. The next release also attaches every
client file and each platform's bare library as its own asset, plus a
get-inlaysql.sh that fetches the right pair in one command:
curl -fsSL https://github.com/inlaySQL/inlaysql/releases/latest/download/get-inlaysql.sh | sh -s -- phpUntil then, this archive's wrappers/ directory is the way in, and
docs/clients.md at this tag
describes exactly what it contains.
WASM payload
| artifact | bytes | KiB | gzipped KiB |
|---|---|---|---|
inlaysql_wasm_bg.wasm |
3146234 | 3072 | 1038 |
Status: beta
The on-disk format is pre-1.0 — recreate, not migrate: a
database written by this version may not open in a later one.
The MySQL server mode binds 127.0.0.1 and is plaintext unless
you configure TLS; a bind that reaches another machine is
refused without accounts of the database's own and TLS
required, or --plaintext-network on a segment it checks is
private. The wire parser is young and its fuzzing campaigns
are new. Read
What this is not
before relying on this for anything real.
Reproduce every number in these notes with the scripts in
TESTING.md and bench/run.sh.