Releases: joaoh82/rust_sqlite
v0.3.0
SQLRite v0.3.0
Per-product releases in this wave:
- 🦀 Rust engine → crates.io
- 🤖 MCP server → crates.io —
cargo install sqlrite-mcpor grab a prebuilt binary tarball; wires SQLRite into Claude Code / Cursor / any MCP client over stdio - 🔧 C FFI — prebuilt
libsqlrite_cfor Linux x86_64/aarch64, macOS aarch64, Windows x86_64 - 🖥️ Desktop — unsigned installers for Linux (AppImage + deb), macOS (dmg aarch64), Windows (msi)
- 🐍 Python → PyPI — abi3-py38 wheels for Linux x86_64/aarch64, macOS aarch64, Windows x86_64 + sdist
- 🟢 Node.js → npm — N-API bindings with prebuilt
.nodebinaries for Linux x86_64/aarch64, macOS aarch64, Windows x86_64 - 🌐 WASM → npm — browser/bundler-target WebAssembly build via wasm-pack
- 🐹 Go SDK →
go get github.com/joaoh82/rust_sqlite/sdk/go@v0.3.0—database/sqldriver via cgo againstlibsqlrite_c
Auto-generated changelog below ↓
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: v0.2.0...v0.3.0
WASM v0.3.0
Published to npm: https://www.npmjs.com/package/@joaoh82/sqlrite-wasm/v/0.3.0
npm install @joaoh82/sqlrite-wasm@0.3.0// Bundler target — works with webpack, vite, rollup, parcel
import init, { Database } from '@joaoh82/sqlrite-wasm';
await init();
const db = new Database();
db.exec("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)");
db.exec("INSERT INTO users (name) VALUES ('alice')");
const rows = db.query("SELECT id, name FROM users");
// → [{ id: 1, name: 'alice' }]What's in the package:
sqlrite_wasm_bg.wasm— the WebAssembly engine binarysqlrite_wasm.js— auto-generated JS glue (wasm-bindgen)sqlrite_wasm.d.ts— TypeScript typespackage.json— bundler-target metadata
Build target: bundler (webpack/vite/rollup-friendly).
For web / nodejs / deno targets, build from source via wasm-pack build sdk/wasm --target <target>.
Verify package provenance:
npm audit signaturesSee the umbrella release v0.3.0 for the full changelog.
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: sdk/go/v0.2.0...sqlrite-wasm-v0.3.0
Rust engine v0.3.0
Published to crates.io: https://crates.io/crates/sqlrite-engine/0.3.0
[dependencies]
sqlrite-engine = "0.3.0"// The [lib] name stays `sqlrite`, so the import alias is
// the short one even though the package name is longer.
use sqlrite::{Database, ExecutionResult};See the umbrella release v0.3.0 for the full changelog.
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: sdk/go/v0.2.0...sqlrite-v0.3.0
Python v0.3.0
Published to PyPI: https://pypi.org/project/sqlrite/0.3.0/
pip install sqlrite==0.3.0import sqlrite
conn = sqlrite.connect(":memory:")
conn.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")
conn.execute("INSERT INTO users (name) VALUES (?)", ("alice",))
for row in conn.execute("SELECT * FROM users"):
print(row)Wheels in this release:
- Linux x86_64 (manylinux2014 or newer)
- Linux aarch64 (manylinux2014 or newer)
- macOS aarch64 (Apple Silicon)
- Windows x86_64
- Source distribution (
.tar.gz) — builds from source on other platforms via a local Rust toolchain
All wheels are abi3-py38, so one wheel per platform works on every CPython ≥ 3.8.
See the umbrella release v0.3.0 for the full changelog.
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: sdk/go/v0.2.0...sqlrite-py-v0.3.0
Node.js v0.3.0
Published to npm: https://www.npmjs.com/package/@joaoh82/sqlrite/v/0.3.0
npm install @joaoh82/sqlrite@0.3.0const { Database } = require('@joaoh82/sqlrite');
const db = new Database(':memory:');
db.exec('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
const stmt = db.prepare('INSERT INTO users (name) VALUES (?)');
stmt.run('alice');
for (const row of db.prepare('SELECT * FROM users').iterate()) {
console.log(row);
}Binaries bundled in this release:
- Linux x86_64 (
sqlrite.linux-x64-gnu.node) - Linux aarch64 (
sqlrite.linux-arm64-gnu.node) - macOS aarch64 (
sqlrite.darwin-arm64.node) - Windows x86_64 (
sqlrite.win32-x64-msvc.node)
The package's index.js dispatcher auto-selects the right binary at require time — no platform-specific install step.
Verify package provenance:
npm audit signaturesSee the umbrella release v0.3.0 for the full changelog.
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: sdk/go/v0.2.0...sqlrite-node-v0.3.0
sqlrite-mcp v0.3.0
Published to crates.io: https://crates.io/crates/sqlrite-mcp/0.3.0
Model Context Protocol (MCP) server for SQLRite. Wraps a SQLRite database as a stdio-spawned subprocess that LLM agents (Claude Code, Cursor, mcp-inspector) can drive without custom integration code.
cargo install sqlrite-mcp// ~/.claude.json
{
"mcpServers": {
"sqlrite": {
"command": "sqlrite-mcp",
"args": ["/path/to/your.sqlrite"],
"env": { "SQLRITE_LLM_API_KEY": "sk-ant-…" }
}
}
}Seven tools: list_tables, describe_table, query, execute, schema_dump, vector_search, ask. Pass --read-only to hide execute. Pre-built binary tarballs (no Rust toolchain required) are attached to this release as well — see sqlrite-mcp-v0.3.0-{platform}.tar.gz.
Full docs: https://github.com/joaoh82/rust_sqlite/blob/main/docs/mcp.md
See the umbrella release v0.3.0 for the full changelog.
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: sdk/go/v0.2.0...sqlrite-mcp-v0.3.0
C FFI v0.3.0
Prebuilt libsqlrite_c for every supported platform, plus the sqlrite.h header.
Download the tarball for your platform, extract, and link:
tar xzf sqlrite-ffi-v0.3.0-<platform>.tar.gz
# lib/ — dynamic + static libraries
# include/sqlrite.h — header to #include
See the umbrella release v0.3.0 for the full changelog.
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: sdk/go/v0.2.0...sqlrite-ffi-v0.3.0
Desktop v0.3.0
SQLRite desktop app — unsigned installers. This release wave ships:
- Linux:
.AppImage+.deb(Debian/Ubuntu) +.rpm(Fedora/RHEL), x86_64 - macOS:
.dmg+ raw.app.tar.gz, Apple Silicon (aarch64). Intel Macs not supported yet — tracked as a Phase 6e follow-up (universal dmg). - Windows:
.msi+.exe(NSIS installer), x86_64
⚠️ Unsigned installer warnings
Installers aren't code-signed yet (Phase 6.1 wires up Apple Developer ID + Windows code-signing). First-launch warnings to expect:
macOS — "SQLRite is damaged and can't be opened" or "unidentified developer":
xattr -cr /Applications/SQLRite.appThis strips the com.apple.quarantine attribute your browser attached on download. macOS Gatekeeper shows "damaged" (not the gentler "unidentified developer") because Tauri ad-hoc signs the binary — Apple Silicon requires a signature, even an ad-hoc one, but quarantined ad-hoc signatures trip a stricter Gatekeeper path. The app is fine; the signature just isn't from a registered Apple Developer ID.
Windows — SmartScreen "Windows protected your PC":
Click "More info" → "Run anyway".
Linux — AppImage:
chmod +x SQLRite_*_amd64.AppImage
./SQLRite_*_amd64.AppImageSee the umbrella release v0.3.0 for the full changelog.
sqlrite-ask v0.3.0
Published to crates.io: https://crates.io/crates/sqlrite-ask/0.3.0
Natural-language → SQL adapter for SQLRite. Anthropic-first; OpenAI / Ollama follow-ups.
[dependencies]
sqlrite-engine = "0.3.0"
sqlrite-ask = "0.3.0"use sqlrite::Connection;
use sqlrite_ask::{AskConfig, ConnectionAskExt};
let conn = Connection::open("foo.sqlrite")?;
let cfg = AskConfig::from_env()?; // SQLRITE_LLM_API_KEY etc.
let resp = conn.ask("How many users are over 30?", &cfg)?;
println!("Generated SQL: {}", resp.sql);See the umbrella release v0.3.0 for the full changelog.
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: sdk/go/v0.2.0...sqlrite-ask-v0.3.0
Go SDK v0.3.0
go get github.com/joaoh82/rust_sqlite/sdk/go@v0.3.0package main
import (
"database/sql"
"fmt"
_ "github.com/joaoh82/rust_sqlite/sdk/go" // registers "sqlrite" driver
)
func main() {
db, _ := sql.Open("sqlrite", ":memory:")
defer db.Close()
_, _ = db.Exec("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")
_, _ = db.Exec("INSERT INTO users (name) VALUES ('alice')")
rows, _ := db.Query("SELECT id, name FROM users")
defer rows.Close()
for rows.Next() {
var id int64
var name string
rows.Scan(&id, &name)
fmt.Printf("%d: %s\n", id, name)
}
}Prebuilt libsqlrite_c (cgo dependency)
The Go binding uses cgo against the libsqlrite_c shared library shipped by sqlrite-ffi. The tarballs attached below are the same ones from this release wave's C FFI release — provided here so Go users have a one-stop-shop:
sqlrite-ffi-v0.3.0-linux-x86_64.tar.gzsqlrite-ffi-v0.3.0-linux-aarch64.tar.gzsqlrite-ffi-v0.3.0-macos-aarch64.tar.gzsqlrite-ffi-v0.3.0-windows-x86_64.tar.gz
Extract for your platform, then point cgo at it:
tar xzf sqlrite-ffi-v0.3.0-<platform>.tar.gz
export CGO_CFLAGS="-I$(pwd)/sqlrite-ffi-v0.3.0-<platform>/include"
export CGO_LDFLAGS="-L$(pwd)/sqlrite-ffi-v0.3.0-<platform>/lib -lsqlrite_c"
export LD_LIBRARY_PATH="$(pwd)/sqlrite-ffi-v0.3.0-<platform>/lib"
go build ./...(On macOS use DYLD_LIBRARY_PATH instead of LD_LIBRARY_PATH. On Windows, place the .dll next to your binary or on %PATH%.)
See the umbrella release v0.3.0 for the full changelog.
What's Changed
- fix(release): swap publish-ask / publish-crate ordering by @joaoh82 in #85
- feat(ddl): DEFAULT clause, DROP TABLE/INDEX, ALTER TABLE by @joaoh82 in #86
- release: v0.3.0 by @joaoh82 in #87
Full Changelog: sdk/go/v0.2.0...sdk/go/v0.3.0