Skip to content

Releases: mindreframer/tursox

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 05 Aug 13:29

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_features for process-killing schema/checkpoint paths while
    preserving the 0.2.x features aliases.
  • 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's register_extension ABI.

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

Choose a tag to compare

@github-actions github-actions released this 05 Aug 11:54

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 turso Cargo fts support 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.sh keeps 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

Choose a tag to compare

@mindreframer mindreframer released this 05 Aug 10:22

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 DBConnection pools
  • 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"}]
end

Precompiled 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.