Installation
Pick the surface that matches how you want to work. All of them talk to the same engine and the same DSL: nothing is feature-gated by which one you choose.
CLI binary (recommended for exploring the DSL)
Section titled “CLI binary (recommended for exploring the DSL)”Prebuilt binary. No Rust toolchain, no system HDF5/OpenSSL required, a single self-contained executable for macOS (Apple Silicon), Linux (x86_64), and Windows (x86_64):
Grab the latest archive for your platform from the Releases
page, extract it, and put linal on your
PATH.
Build from source, if you’d rather:
git clone https://github.com/gorigami/linaldb.gitcd linaldb && cargo build --release# binary at ./target/release/linalVerify it’s working:
linal --versionlinal replPython
Section titled “Python”Two shapes, depending on whether you want a server in the loop.
Embedded (native extension, no server). Links the engine directly into your process, used like SQLite:
pip install linaldbimport linaldb
db = linaldb.Db() # persists to ./data, exactly like the CLIdf = db.query("SELECT id, embedding FROM docs WHERE score > 0.8")HTTP (thin client). Talks to a separately running linal serve instance, no
compiled extension:
pip install linaldb-serverimport linaldb_server as linaldb
client = linaldb.connect("http://localhost:8080")df = client.query("SELECT id, embedding FROM docs WHERE score > 0.8")The same two shapes as Python, as R packages (not yet on CRAN: install directly from the source checkout):
# Embedded# R CMD INSTALL clients/r-embeddedlibrary(linaldb)db <- linal_embedded_db()
# HTTP client# devtools::install(file.path("clients", "r"))library(linaldb.server)conn <- linal_connect("http://localhost:8080")HTTP server
Section titled “HTTP server”To run linaldb as a shared, multi-tenant service:
linal serve --port 8080This exposes /execute (ad-hoc DSL), /delivery (read-only Parquet dataset export),
/jobs and /schedule (background/recurring execution), and a Swagger UI at
/swagger-ui. See Persistence & Server for the
full endpoint reference.
Continue to the Quickstart for a real, runnable first session.

