Releases: mindreframer/tursox
Release list
v0.2.1
0.2.1 - 2026-08-05
Added
- Runtime opt-ins for all eleven documented Turso experimental flags, including
encryption, autovacuum, and unsafe MVCC passive checkpointing. - Secret-redacted local encryption with all eight pinned cipher modes and
portable crypto in every source/precompiled build. - Explicit
unsafe_featuresfor process-killing schema/checkpoint paths while
preserving the 0.2.xfeaturesaliases. - Explicit native runtime extension loading through Turso's extension ABI.
- Phase-marked subprocess evidence that distinguishes successful execution,
setup errors, timeouts, SIGBUS, and SIGSEGV.
Fixed
- Replaced permissive tests that treated any nonzero child exit as proof of an
engine crash; probes now assert the exact last phase and exit class. - Exposed the pinned SDK's autovacuum gate through a minimal exact-0.7.2 wrapper
patch and documented its still-broken fresh-file persistence behavior. - Corrected the encryption and MVCC capability claims from “not exposed” to
tested runtime options. - Verified that SQLean 0.28.3 exports SQLite entry points and is rejected by
Turso's loader because it does not export Turso'sregister_extensionABI.
Precompiled binaries
Seven NIF 2.16 archives are attached for macOS aarch64/x86-64,
Linux aarch64/x86-64 GNU and musl, and Windows x86-64 MSVC. Every archive
was built from commit 6ae7034 and directly smoke-tested before
publication.
See the full compatibility report:
https://github.com/mindreframer/tursox/blob/v0.2.1/docs/roadmap002-capabilities.md
v0.2.0
Tursox 0.2.0 — capability coverage and regression confidence
Tursox 0.2.0 expands the Elixir bindings around the pinned Turso 0.7.2 engine. This release does not upgrade Turso. It adds executable compatibility coverage, deliberately enables Tantivy-backed full-text search, and documents exactly which advanced capabilities are supported, partial, unavailable, platform-limited, or unsafe.
Highlights
- Full-text search: deliberate
tursoCargoftssupport across source and precompiled builds, with tested FTS indexes, matching, scoring, highlighting, tokenizers, field weights, bound queries, DML maintenance, transactions, optimization, drop, and reopen behavior. - Core SQL regression suite: DDL, CRUD, UPSERT, RETURNING, constraints, joins, grouping, compound queries, prepared statements, bounded cursors, transactions, persistence, pools, managers, and resource cleanup.
- Safe PRAGMA access: injection-safe table/index arguments plus tested metadata, schema introspection, configuration scope, integrity checks, WAL checkpoints, MVCC tuning, and explicit unsupported results.
- Schema capabilities: tested ordinary views, triggers,
WITHOUT ROWID, attach/detach, vacuum, STRICT base types, indexes, multi-connection behavior, and reopen integrity. - Extension inventory: runtime-derived coverage for UUID, regexp, vectors, time, percentile functions, and
generate_series; unavailable crypto, fuzzy, IP, CSV, and runtime-loading behavior is recorded honestly. - Real multiprocess WAL tests: independent BEAM processes verify writes, reader snapshots, writer serialization, checkpoints, schema refresh, process-kill recovery, sidecars, and integrity on supported 64-bit Unix/local-filesystem environments.
- Native code organization: the former monolithic Rust NIF file is split into cohesive builder, database, query, resource, value, error, runtime, smoke, and atom modules.
- Cleaner QA:
bin/qa_check.shkeeps interactive ExUnit dots/results while capturing noisy compiler/linter logs and showing concise failure diagnostics.
Important pinned-engine findings
These are intentional compatibility results, not hidden regressions:
- Generated-column reads, custom types/domains/composites, materialized views, and passive MVCC checkpoint paths are classified unsafe on Turso 0.7.2 and are probed only in disposable child BEAMs.
- Autovacuum, encryption, CDC behavior, runtime extension loading, and several newer documented extension families are unavailable on this pin/build.
- Multiprocess WAL remains experimental and platform-limited. Memory databases and MVCC combinations are rejected. Turso 0.7.2 also differs from newer documentation for live mode mixing on macOS.
- Turso FTS is Tantivy-backed and is not SQLite FTS5 syntax compatibility.
See the complete Turso 0.7.2 executable capability report and changelog.
Installation
def deps, do: [{:tursox, "~> 0.2.0"}]Enable FTS index methods explicitly when opening a database:
{:ok, db} = Tursox.Database.open("app.db", features: [:index_method])Precompiled binaries
Seven NIF 2.16 archives are attached for:
- macOS: aarch64, x86-64
- Linux GNU: aarch64, x86-64
- Linux musl: aarch64, x86-64
- Windows MSVC: x86-64
Every archive was built from release commit 836c5f6a498734d02abb72dbfe81f2f03d157968 and directly smoke-tested before publication. Published SHA-256 values are recorded in checksum-Elixir.Tursox.Native.exs. Source and no-Rust precompiled consumer CI are green.
Tursox 0.1.0
Tursox 0.1.0
Initial release of Tursox, embedded Turso bindings for Elixir.
Highlights
- Direct database, connection, prepared statement, bounded cursor, and transaction APIs
- WAL and experimental MVCC journal modes
- Optional shared-handle
DBConnectionpools - Optional supervised multi-database managers
- Strict positional and named parameters with explicit BLOB support
- Normalized errors, redacted telemetry, and native resource gauges
- Precompiled NIF 2.16 binaries for macOS, Linux, and Windows
Installation
def deps do
[{:tursox, "~> 0.1.0"}]
endPrecompiled targets
- macOS: Apple Silicon and Intel
- Linux GNU: ARM64 and x86_64
- Linux musl: ARM64 and x86_64
- Windows MSVC: x86_64
Set TURSOX_BUILD=1 to build from source with Rust 1.91.0.
Tursox 0.1.0 embeds Turso 0.7.2. MVCC support is experimental upstream.