Skip to content

Conversation

@renovate
Copy link

@renovate renovate bot commented Oct 4, 2025

Note: This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
turso dependencies minor 0.10.4

Release Notes

tursodatabase/turso (turso)

v0.4.3: 0.4.3 -- 2026-01-12

Compare Source

Release Notes

Added
  • bindings/rust: support prepare_cached (Pere Diaz Bou)
Fixed
  • Disallow WITHOUT ROWID tables (Jussi Saurio)
  • core/vdbe: move mutable fields from Program to ProgramState (Pere Diaz Bou)
  • avoid recursive read locks (Nikita Sivukhin)

Install turso_cli 0.4.3

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.4.3/turso_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.4.3/turso_cli-installer.ps1 | iex"

Download turso_cli 0.4.3

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.4.2: 0.4.2 -- 2026-01-07

Compare Source

Release Notes

Fixed
  • core/mvcc: rollback index rows (Pere Diaz Bou)
  • core/vdbe: check negative root pages with integrity_check (Pere Diaz Bou)
  • Track WAL state in savepoints for proper rollback (Pavan Nambi)
  • Reset checkpoint state when PRAGMA wal_checkpoint fails (Jussi Saurio)
  • fix/checkpoint: always read page1 from db file when truncating (Jussi Saurio)
  • Fix WAL truncate checkpoint discarding uncheckpointed frames (Jussi Saurio)

Install turso_cli 0.4.2

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.4.2/turso_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.4.2/turso_cli-installer.ps1 | iex"

Download turso_cli 0.4.2

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.4.1: 0.4.1 -- 2026-01-06

Compare Source

Release Notes

Fixed
  • Fix path not fsyncing the DB file after truncate checkpoint (Preston Thorpe)

Install turso_cli 0.4.1

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.4.1/turso_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.4.1/turso_cli-installer.ps1 | iex"

Download turso_cli 0.4.1

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.4.0

Compare Source

Added
  • stress: Add support for BEGIN CONCURRENT transactions (Pekka Enberg)
  • stress: add semi colon to transaction statements when printing to log file (Pedro Muniz)
  • Add scripts/corruption-debug-tools (Jussi Saurio)
  • add more asserts in balance operation (Pedro Muniz)
  • bindings/java: implement JDBC4 CharacterStream binding methods (Orange banana)
  • add --db-ref optional arg to run turso-stress against "template" database (Nikita Sivukhin)
  • support format() function (Fahd Ashour)
  • feat(extensions): add stddev aggregate function to percentile module (Kelvin)
  • simulator: add proper handling for deffered transactions in shadow state (Pedro Muniz)
  • feat: Add support for HAVING without GROUP BY (Nuno Gonçalves)
  • Implement foreign key actions (Preston Thorpe)
  • implement pragma cache spill (Preston Thorpe)
  • Add multiverse debugging instructions (Mikaël Francoeur)
  • Implement busy handlers/callbacks (Preston Thorpe)
  • add readonly checks to ensure we do not change the header (Pedro Muniz)
  • implement state machine for op_journal_mode (Pedro Muniz)
  • Add io_uring option for IO backend to simulator (Preston Thorpe)
  • core/storage: implement Cache Spilling (Preston Thorpe)
  • Add dotnet bindings to Turso (Kopylov Dmitriy)
  • fix bug in the sync engine wasm implementation (Nikita Sivukhin)
  • feat(hash-join): add hash matching for equivalent integer and real values (Nuno Gonçalves)
  • implement state machine for parsing input in CLI (Pedro Muniz)
  • add rust-analyzer component to toolchain (Pedro Muniz)
  • Add script to run SQLancer against turso + fix some bugs found by doing so (Jussi Saurio)
  • Add greedy join ordering for large queries (>12 tables) (Jussi Saurio)
  • core/mvcc/cursor: add missing reset state in next (Pere Diaz Bou)
  • Add PR template (Preston Thorpe)
  • fix: JSON_INSERT now correctly inserts new keys in nested objects (Mikaël Francoeur)
  • Remove unused parameter in limbo_exec_rows and add ergonomic ExecRows trait for testing (Pedro Muniz)
  • translate/optimizer: Finish implementing ANALYZE (Preston Thorpe)
  • core/mvcc/cursor: implement count (Pere Diaz Bou)
  • support libsql:// protocol as a sync url in python driver (Nikita Sivukhin)
  • initialize global header on bootstrap (Pedro Muniz)
  • Rust binding add prepare to transaction (Dave Warnock)
  • add turso bot config (Pedro Muniz)
  • feat: adding check for unquoted literals in values() (Rohith Suresh)
  • Improved Python driver with opt-in asyncio support (Nikita Sivukhin)
  • tcl,makefile: add tcl test infraestructure for mvcc (Pere Diaz Bou)
  • core/mvcc: fix bounds check new rowid (Pere Diaz Bou)
  • Added dot product vector distance (Tejas)
  • sim: add binary tool that converts plan.sql to rust test file (Jussi Saurio)
  • Add explanation for concurrent transactions (Pekka Enberg)
  • testing/fuzz: Add new fuzzer for joins (Preston Thorpe)
  • add lib-release profile (Nikita Sivukhin)
  • planner/vdbe: implement Hash Joins as an alternative to Ephemeral Indexes (Preston Thorpe)
  • Add sync support to the SDK kit (Nikita Sivukhin)
  • fix/mvcc: always reinitialize index iterator on seek (Jussi Saurio)
  • translate/vdbe: add bloom filter (Preston Thorpe)
  • mvcc: implement logical log recovery for indexes + checkpointing of indexes (Jussi Saurio)
  • Docs: add table of contents to CONTRIBUTING.md (Fahd Ashour)
  • finish implementing "quote" scalar function for blob types (Preston Thorpe)
  • add alias to colnames explicitly as column-N (Pavan Nambi)
  • Add #[turso_macros::test] to automatically create tests that can run MVCC with minimal code changes (Pedro Muniz)
  • mvcc: introduce stateful "dual cursor" (Jussi Saurio)
  • introduce program execution state in order to run stmt to completion in case of finalize or reset (Nikita Sivukhin)
  • mvcc: add some plumbing for index support (Jussi Saurio)
  • core/mvcc/tests: add fuzz test for mvcc with checkpoint and with CRUD ops (Pere Diaz Bou)
  • translate/planner: Implement Index creation on arbitrary expressions (Preston Thorpe)
  • Support table xinfo (Nikita Sivukhin)
  • core/mvcc/cursor: implement prev and last (Pere Diaz Bou)
  • Trigger support (Jussi Saurio)
  • translate/insert: Implement INSERT OR REPLACE (Preston Thorpe)
  • Add ColDef struct to make schema::Column creation more ergonomic (Preston Thorpe)
  • Support DELETE ... RETURNING (Jussi Saurio)
  • Refactor RETURNING to support arbitrary expressions (Jussi Saurio)
  • bindings/java: implement JDBC4 InputStream binding methods (ASCII/Binary, no-length and long overloads) (Orange banana)
  • Add RowSet<Add/Read/Test> instructions and rowset implementation (Jussi Saurio)
  • bindings/java: implement stream binding methods (int, InputStream, int) in JDBC4PreparedStatement (Orange banana)
  • workflows: Add GITHUB_TOKEN to all Nyrkiö steps (Henrik Ingo)
  • extensions/vtabs: implement remaining opcodes (Preston Thorpe)
  • Throw an error when adding generated columns via an alter table (Rohith Suresh)
  • add some docs for index method (Nikita Sivukhin)
  • bindings/java: Implement setObject(int, Object) in JDBC4PreparedStatement (Orange banana)
Updated
  • Minor cleanups in function.rs and refactoring allocations (Preston Thorpe)
  • WAL: Stop copying page buffers during checkpoint (Preston Thorpe)
  • test runner: Test Converter (Pedro Muniz)
  • core/storage: Eliminate buffer copy in begin_write_btree_page() (Pekka Enberg)
  • Test runner Foundation (Pedro Muniz)
  • show failure output in the end with cargo nextest (Pedro Muniz)
  • core/storage: Zero remaining buffer bytes in begin_write_btree_page() (Pekka Enberg)
  • core/storage: Make PagerInner::buffer use Arc (Pekka Enberg)
  • Adjust merge script to truncate the PR template (Preston Thorpe)
  • Improvements to turso_stress (Mikaël Francoeur)
  • Page management cleanups (Pekka Enberg)
  • btree: reset AdvanceState after last state transition (Pedro Muniz)
  • Make BTree and MVCC cursor Send + Sync (Pedro Muniz)
  • Raise log level polling frequency (Mikaël Francoeur)
  • btree/pager: performance tuning (Preston Thorpe)
  • chore/btree: remove unused code (Jussi Saurio)
  • Modify bench-profile to allow generating better flamegraphs (Jussi Saurio)
  • all-mvcc: uncomment working tests (Pere Diaz Bou)
  • perf/sorter: sort pointers instead of records, use arena allocation (Jussi Saurio)
  • Remove TursoDBFactory (Mikaël Francoeur)
  • Save sync configuration (Nikita Sivukhin)
  • Optimized RecordCursor, Remove read_varint_fast (Khashayar Fereidani)
  • Run statements to completion on reset (Martin Mauch)
  • adjust tpc-h bench script to more easily compare results (Preston Thorpe)
  • stress: use multithreaded runtime (Jussi Saurio)
  • Conflict end txn (Nikita Sivukhin)
  • Accept SQL query using AsRef<str> instead of &str (Arto Bendiken)
  • core: remove mutex from ImmutableRecord::cursor (Jussi Saurio)
  • Enable tokio-unstable in Antithesis image (Mikaël Francoeur)
  • Prevent dropping columns that contain fk references (Preston Thorpe)
  • lint/perf: deny eager fallback function calls (ok_or, map_or, unwrap_or) (Jussi Saurio)
  • reset statement in query() (Mikaël Francoeur)
  • User rust-gdb instead of gdb (Mikaël Francoeur)
  • Antithesis observability improvements (Mikaël Francoeur)
  • Rust bindings sync (Nikita Sivukhin)
  • Refactor/improve performance of commit path (Preston Thorpe)
  • Sdk kit rust bindings (Nikita Sivukhin)
  • Yet another refactor of INSERT translation (Preston Thorpe)
  • stress: Make SQLite integrity check more explicit (Pekka Enberg)
  • Sdk kit refactoring (Nikita Sivukhin)
  • perf/vdbe: reuse&clear ephemeral cursor on repeat invocations (Jussi Saurio)
  • perf/prepare: various optimizations (Jussi Saurio)
  • Improve lexer performance by using SIMD (Khashayar Fereidani)
  • Remove unnecessary Cell and RefCell for better multithreaded safety (Pedro Muniz)
  • Partial sync experimental (Nikita Sivukhin)
  • remove unneeded Result in exec unixepoch (Juan V. García)
  • Lexer/Parser Optimization and refactoring (Khashayar Fereidani)
  • tcl: run PRAGMA journal_mode=experimental_mvcc with mvcc (Pere Diaz Bou)
  • SDK tweaks (Nikita Sivukhin)
  • core/mvcc: set_null_flag(false) when seek is called (Pere Diaz Bou)
  • Mark triggers as experimental (Jussi Saurio)
  • Set all testing dbs to WAL journal mode (Preston Thorpe)
  • Remove run once from Statement (Pedro Muniz)
  • Use u64::from instead of .into() (Elina)
  • remove the warning directive to allow environment filter to work (Pedro Muniz)
  • core/execute: use same code for generating rowid in mvcc as in btree (Pere Diaz Bou)
  • Improve MVCC DX by dropping --experimental-mvcc flag (Pekka Enberg)
  • aws/sim: disable io-uring (Jussi Saurio)
  • Local sync server (Nikita Sivukhin)
  • Simplify slot bitmap to remove complex unused optimizations (Preston Thorpe)
  • clean up core tester to use conn.execute and conn.exec_rows for parsing correctly the expected values from select queries (Pedro Muniz)
  • Connection small refactor (Dave Warnock)
  • Enable MVCC with PRAGMA journal_mode (Pedro Muniz)
  • propagate partial sync settings in the web (Nikita Sivukhin)
  • Consider Order by expressions collation when deciding candidate index for iteration (Pedro Muniz)
  • Checkpoint cleanup (Jussi Saurio)
  • use cmath from system libraries only in tests in order to be more portable (Nikita Sivukhin)
  • No tempfiles on wasm (Nikita Sivukhin)
  • core: Make Pager thread-safe (Pekka Enberg)
  • update go mod name as we will serve module through custom proxy (Nikita Sivukhin)
  • Install sqlite locally to run tests and other scripts (Pedro Muniz)
  • rename speculative load to prefetch (docs already uses this terminology) (Nikita Sivukhin)
  • docs: update clippy command in CONTRIBUTING.md to match CI job (Nuno Gonçalves)
  • stress: Make random seed configurable (Pekka Enberg)
  • Devcontainer setup (Nikita Sivukhin)
  • core/mvcc/cursor: return previous max id (Pere Diaz Bou)
  • Update wording of AI section of PR template (Jussi Saurio)
  • whopper: Simulate time (Pekka Enberg)
  • increase lantency check for flaky test in test_read_path.rs (Preston Thorpe)
  • run get(...) to completion - otherwise INSERT ... RETURNING will be executed incorrectly (Nikita Sivukhin)
  • ci: run TCL tests for MVCC under CI (Pere Diaz Bou)
  • Get mutable reference to table in Schema so we can modify it with Arc::make_mut (Pedro Muniz)
  • also check for None checkpointed_txid_max_old when determining if RowVersion exists in the Db (Pedro Muniz)
  • Go driver (Nikita Sivukhin)
  • Minor improvements and refactoring in btree.rs (Preston Thorpe)
  • revert change in index_scan_compound_key_fuzz (Pedro Muniz)
  • Make checkpointed_txid_max_old be an Optional<NonZeroU64> (Pedro Muniz)
  • Remove some useless clones in pager.rs (Preston Thorpe)
  • upgrade cargo dist to 0.30.2 (Nikita Sivukhin)
  • Partial sync improvements (Nikita Sivukhin)
  • Prevent concurrent tx ctrl and write (Nikita Sivukhin)
  • core/mvcc/cursor: ignore non visible rows on "last" (Pere Diaz Bou)
  • core/mvcc/tests: un-ignore seek tests (Pere Diaz Bou)
  • CI: simulator tweaks (Jussi Saurio)
  • chore: remove experimental_indexes feature flags (Jussi Saurio)
  • do not propagate the MvStore to opcodes (Pedro Muniz)
  • Run BEFORE and AFTER update triggers on upserts (Mikaël Francoeur)
  • Ignore SQLITE_BUSY during auto-checkpoint (Mikaël Francoeur)
  • Allocate Page 1 in pager on open (Pedro Muniz)
  • Prevent creating index on rowid pseudo-column (Mikaël Francoeur)
  • Improve Android compatibility (Martin Mauch)
  • Simulator Roadmap (Alperen Keleş)
  • guard subjournal access within single connection (Nikita Sivukhin)
  • Turso sdk kit version (Nikita Sivukhin)
  • Automatically Propagate Encryption options (Pedro Muniz)
  • core/mvcc: state machines for prev, next, exists, rewind, last (Pere Diaz Bou)
  • btree/balance: assert that if multiple overflow cells, they are adjacent sequential (Jussi Saurio)
  • simulator: generate more INSERT INTO ... SELECT self-inserts (Mikaël Francoeur)
  • Arc swap MvStore + centralize MvStore acquisition (Pedro Muniz)
  • mvcc: do not store index data twice in Row (Jussi Saurio)
  • Col name in trigger subquery (Rohith Suresh)
  • Update AEGIS crate version (Avinash Sajjanshetty)
  • SDK kit (Nikita Sivukhin)
  • Ensure LIKE is case-sensitive for non-ASCII characters (Tejas)
  • sim/aws: memory IO 100% of the time, differential 50% of the time (Jussi Saurio)
  • mvcc: reconstruct index rows on logical log recovery (Jussi Saurio)
  • More mvcc index stuff (Jussi Saurio)
  • mvcc: make more MvccLazyCursor ops compatible with indexes (Jussi Saurio)
  • drop triggers if table drops (Pavan Nambi)
  • Kill unwrap() calls in MVCC module (Pekka Enberg)
  • Kill unwrap() in vector module (Pekka Enberg)
  • Kill unwrap() calls in VDBE module (Pekka Enberg)
  • Tidied imports in Rust binding example without unwrap (Dave Warnock)
  • Rust binding example without unwrap (Dave Warnock)
  • Kill unwrap() calls in JSON module (Pekka Enberg)
  • use i64 for registers p1,p2,p3,p5 in EXPLAIN output (Mikaël Francoeur)
  • Kill unwrap() in macros (Pekka Enberg)
  • Kill unwrap in incremental module (Pekka Enberg)
  • mvcc: refactor RowID.row_id to be either i64 or a record (Jussi Saurio)
  • Kill unwrap() calls in extensions (Pekka Enberg)
  • SQLite C API improvements (Nikita Sivukhin)
  • simulator: only check all tables if we have any tables to check (Pedro Muniz)
  • core: Switch to parking_lot::Mutex (Pekka Enberg)
  • Simulator: refactor and simplify InteractionPlan (Pedro Muniz)
  • Enable nested self-inserts in simulator (Mikaël Francoeur)
  • correct order in column creation in join tests (Pavan Nambi)
  • Nyrkiö: Set all comment-on to false (Henrik Ingo)
  • Partial sync basic (Nikita Sivukhin)
  • Use AsValueRef in more functions (Pedro Muniz)
  • treat parameters as "constant" within a query (Nikita Sivukhin)
  • Completion: make it Send + Sync (Nikita Sivukhin)
  • core/mvcc: use btree cursor to navigate rows (Pere Diaz Bou)
  • core: update aegis (Daeho Ro)
  • Refactor affinity conversions for reusability (Pedro Muniz)
  • Create AsValueRef trait to allow us to be agnostic over ownership of Value or ValueRef (Pedro Muniz)
  • Move value functions to separate file (Pedro Muniz)
  • Avoid heavy macro (Nikita Sivukhin)
  • Stop blob json parsing at null terminator (Duy Dang)
  • core/translate: Remove unused ParamState (Preston Thorpe)
  • Toy index improvements (Nikita Sivukhin)
  • use dyn DatabaseStorage instead of DatabaseFile (Nikita Sivukhin)
  • Prevent DROP TABLE when table is referenced by foreign keys (Joao Faria)
  • core/vdbe Handle renaming child FK definitions in rename table stmt (Preston Thorpe)
  • Prevent misuse of subqueries that return multiple columns (Jussi Saurio)
  • Optimize and refactor schema::Column type (Preston Thorpe)
  • Clean up Connection::from_uri() by using DatabaseOpts (Rohith Suresh)
  • Select correct collation sequence for compound select (Pedro Muniz)
  • core: Disable autovacuum by default (Pekka Enberg)
  • Make mimalloc dependency optional (Pekka Enberg)
  • Update Java package version in scripts/update-version.py (Pekka Enberg)
Fixed
  • stress: Keep going on I/O errors instead of panicking (Pekka Enberg)
  • fix: lint warnings unused variable/import in release build (Khashayar Fereidani)
  • integrity check: do not throw errors if pending byte page is never used (Pedro Muniz)
  • fix(storage): improve error message for truncated database files (Srinivas A)
  • fix/pager&wal: ensure wal write lock held when rolling back frame_cache (Jussi Saurio)
  • Enable debug_assertions for antithesis profile (Pekka Enberg)
  • General improvements, micro-optimizations and bug fix for core/functions (Khashayar Fereidani)
  • fix dockerfiles (Jussi Saurio)
  • Fix DROP TABLE to properly handle FK actions and allow for orphaned/NULL FK refs (Preston Thorpe)
  • core/mvcc/logical_log: off by one error reading logical log encrypted (Pere Diaz Bou)
  • Fix squeue overflow issue in io_uring (Preston Thorpe)
  • Affinity fixes (Pedro Muniz)
  • Read only fixes (Pedro Muniz)
  • slightly adjust fixed unstable test (Nikita Sivukhin)
  • CI test setup fixes + fix GroupCompletion bug (Pedro Muniz)
  • pyturso: fix panic (Nikita Sivukhin)
  • fix(core/translate): apply affinity conversion to hash join build and probe keys (Nuno Gonçalves)
  • fix/core: fix transaction issues (Jussi Saurio)
  • sim: fix apply_snapshot for create table, create index, drop column (Jussi Saurio)
  • fix stack overflow in long unary expressions ("' from Jussi Saurio)
  • Fix RTRIM ignoring trailing tabs (Krishna Vishal)
  • Fix incorrect conversion from TEXT to INTEGER when text is a number followed by a trailing non-breaking space (Krishna Vishal)
  • fix stack overflow in long unary expressions (")
  • Sync fixes (Nikita Sivukhin)
  • fix(core): prevent ALTER COLUMN from resulting in tables with only generated columns (Nuno Gonçalves)
  • core/storage: fixes for the commit path and io_uring (Preston Thorpe)
  • aws/sim: fixes and tweaks (Jussi Saurio)
  • fix succeeded check (Pedro Muniz)
  • fix/sim: all alter table ops must be recorded and applied in order (Jussi Saurio)
  • fix coroutine panic: replace ended_coroutine Bitfield with vec (Jussi Saurio)
  • Fix: update schema if DDL commit succeeded but checkpoint failed (Jussi Saurio)
  • Fix race condition in WAL frame_cache update with io_uring (Mikaël Francoeur)
  • fix(json): properly serialize infinite values (Nuno Gonçalves)
  • fix(core/util): reject integer primary key underflow (Nuno Gonçalves)
  • fix/core: decouple autocheckpoint result from transaction durability (Jussi Saurio)
  • Fix StreamingWalReader behavior with checksums of uncommitted frames (Preston Thorpe)
  • Fix ignored completion in free_page (Preston Thorpe)
  • Fix more instances of marking pages dirty after modification (Jussi Saurio)
  • fix/pager: mark freelist trunk page dirty BEFORE modifying it (Jussi Saurio)
  • fix/sim: modify rows in ALTER TABLE properly (Jussi Saurio)
  • core: Fix integrity_check pragma code generation (Pekka Enberg)
  • antithesis: Fix unique constraint exception handling in stress-composer tests (Pekka Enberg)
  • Fix Github go workflow (Nikita Sivukhin)
  • sim: fix bug in apply_snapshot (Jussi Saurio)
  • Sync better error messages (Nikita Sivukhin)
  • Fix CTE scope propagation for compound SELECTs (Martin Mauch)
  • Sqlite3 compat fix (Nikita Sivukhin)
  • Sim transaction fixes (Jussi Saurio)
  • sim/aws: comment on existing issues instead of skipping duplicates (Jussi Saurio)
  • Fix complex unique sqlite3 compat (Nikita Sivukhin)
  • fix/btree: disable move_to_rightmost optimization with triggers (Jussi Saurio)
  • Fix descending index scan returning rows when seek key is NULL (Jussi Saurio)
  • Fix external sorter losing rows when chunks need async IO (Jussi Saurio)
  • sim: stop ignoring sql execution errors (Jussi Saurio)
  • Fix two bugs with compound selects (Jussi Saurio)
  • Fix IN operator translation logic (Nikita Sivukhin)
  • fix/mvcc: seek() must seek from both mv store and btree (Jussi Saurio)
  • Fix panic in optimizer when usable constraint refs is empty (Preston Thorpe)
  • optimizer: fix incorrect index_col_pos assigned when multiple constraints ref same join key (Preston Thorpe)
  • Bloom filter fixes (Preston Thorpe)
  • fix: escape backslashes in json_object string values (Martin Mauch)
  • fix/mvcc: use existing schema object in mvcc bootstrap (Jussi Saurio)
  • Mvcc bugfixes (Jussi Saurio)
  • Fix vtab memory leak (Nikita Sivukhin)
  • Fix comparison of large numbers (Mikaël Francoeur)
  • Fix to Google Books link in CONTRIBUTING (Juan V. García)
  • core/mvcc: fix exists to use BTreeCursor as fallback (Pere Diaz Bou)
  • core/io: Improve error handling (Pekka Enberg)
  • core/index_method: Improve error handling in toy_vector_spare_ivf.rs (Pekka Enberg)
  • Triggers: fix issues with ALTER TABLE (Jussi Saurio)
  • Return parse error if NULLS LAST used in ORDER BY (Jussi Saurio)
  • Fix: Drop internal DBSP table when dropping materialized view (Martin Mauch)
  • Fix seek not applying correct affinity to seek expr (Pedro Muniz)
  • Fix EXISTS on LEFT JOIN null rows (Duy Dang)
  • Fix error handling on provided insert column count mismatch (Jussi Saurio)
  • core/vdbe: Fix incorrect unreachable condition in op_seek_rowid (Preston Thorpe)
  • Update and fix nix build (Alexander Hirner)
  • Fix INSERT UNION ALL (Duy Dang)
  • Fix LEFT JOIN subqueries reusing stale right-side values (Duy Dang)
  • Throw an error in case duplicate CTE names are found (Rohith Suresh)
  • Fix self-insert SUM when table uses INTEGER PRIMARY KEY (Duy Dang)

v0.3.2: 0.3.2 -- 2025-11-02

Compare Source

Release Notes

Updated
  • core: Disable autovacuum by default (Pekka Enberg)
  • Update Java package version in scripts/update-version.py (Pekka Enberg)

Install turso_cli 0.3.2

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.2/turso_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.2/turso_cli-installer.ps1 | iex"

Download turso_cli 0.3.2

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.3.1: 0.3.1 --2025-11-01

Compare Source

Release Notes

Updated
  • Make mimalloc dependency optional (Pekka Enberg)

Install turso_cli 0.3.1

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.1/turso_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.1/turso_cli-installer.ps1 | iex"

Download turso_cli 0.3.1

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.3.0

Compare Source

Added
  • Implement wasNull tracking in ResultSet getter methods (김민석)
  • Support subqueries in all positions of a SELECT statement (Jussi Saurio)
  • Initialize LIMIT after after ORDER BY / GROUP BY initialization (Jussi Saurio)
  • index_method: implement basic trait and simple toy index (Nikita Sivukhin)
  • Where clause subquery support (Jussi Saurio)
  • sqlite3: Add multi-statement support for sqlite3_exec() (Preston Thorpe)
  • Add DISTINCT support to aggregate operator (Glauber Costa)
  • docs: Add vector search section to database manual (Pekka Enberg)
  • Support statement-level rollback via anonymous savepoints (Jussi Saurio)
  • Add AtomicEnum proc macro to generate atomic wrappers to replace RwLocks (Preston Thorpe)
  • Fix git directory resolution in simulator to support worktrees (Jussi Saurio)
  • Add Miri support for turso_stress, with bash scripts to run (Bob Peterson)
  • tests: Add rowid alias fuzz test case (Pekka Enberg)
  • core/translate: throw parse error on unsupported GENERATED column constraints (Preston Thorpe)
  • translate/insert: more refactoring and support INSERT OR IGNORE (Preston Thorpe)
  • sql_generation: Fix implementation of LTValue and GTValue for Text types (Jussi Saurio)
  • core/mvcc: implement CursorTrait on MVCC cursor (Pere Diaz Bou)
  • Add test case for vector() format crash (Pedro Muniz)
  • Add correct unique constraint test for tcl (Pedro Muniz)
  • stress: Add busy timeout support with 5 second default (Pekka Enberg)
  • Add WINDOW functions to COMPAT.md (Jussi Saurio)
  • core/translate: Add if alias and allow iff to have more arguments (Pavan Nambi)
  • core/btree: try to introduce trait for cursors (Pere Diaz Bou)
  • bindings/java: Add support for publishing to Maven Central (Kim Seon Woo)
  • add Calendar-based timezone conversion support in JDBC4ResultSet (김민석)
  • Add Nightly versions of benchmarks that run on Nyrkiö runners (Henrik Ingo)
  • Add support for sqlite_version() star syntax (Glauber Costa)
  • core/translate: implement basic foreign key constraint support (Preston Thorpe)
  • Simulator: Add Drop and pave the way for Schema changes (Pedro Muniz)
  • core/io: remove new_dummy in place of new_yield (Pere Diaz Bou)
  • Add MVCC checkpoint threshold pragma (bit-aloo)
  • core/incremental: Implement "is null" and "is not null" tests for view filter (Glauber Costa)
  • core/mvcc: implement PartialOrd for RowId (Pere Diaz Bou)
  • core/io: Add completion group API for managing multiple I/O operations (Pekka Enberg)
  • Add short writes to unreliable-libc (FamHaggs)
  • add basic examples for database-wasm package (Nikita Sivukhin)
  • core/wal: introduce transaction_count, same as iChange in sqlite (Pere Diaz Bou)
Updated
  • antithesis: Upload config image in GitHub Actions workflow (Pekka Enberg)
  • perf/throughput: Improve reproducibility (Pekka Enberg)
  • translate: disallow correlated subqueries in HAVING and ORDER BY (Jussi Saurio)
  • Stmt reset cursors (Nikita Sivukhin)
  • reset move_to_right_state cached state in case of quick balancing (Nikita Sivukhin)
  • index_method: fully integrate into query planner (Nikita Sivukhin)
  • core: Switch to FxHash to improve performance (Pekka Enberg)
  • bindings/rust: Enable mimalloc as global allocator (Pekka Enberg)
  • index method syntax extension (Nikita Sivukhin)
  • Tighten Nyrkio p-value to 0.00001 (Henrik Ingo)
  • Strict numeric cast for op_must_be_int (bit-aloo)
  • core/vdbe: Reuse cursor in op_open_write() (Pekka Enberg)
  • core: Switch RwLock<Arc> to ArcSwap (Pekka Enberg)
  • Always returns Floats for sum and avg on DBSP aggregations (Glauber Costa)
  • perf/throughput: Use connection per transaction in rusqlite benchmark (Pekka Enberg)
  • Return null terminated strings from sqlite3_column_text (Preston Thorpe)
  • Order by heap sort (Nikita Sivukhin)
  • core/storage: Cache schema cookie in Pager (Pekka Enberg)
  • github: Run fuzz tests in a separate workflow (Pekka Enberg)
  • tests: Separate integration and fuzz tests (Pekka Enberg)
  • Vector speedup (Nikita Sivukhin)
  • parser: translate boolean values to literal when parsing column constraints (Preston Thorpe)
  • core/io: Make random generation deterministically simulated (Pedro Muniz)
  • core: move BTreeCursor under MVCC cursor (Pere Diaz Bou)
  • Move completion code to separate file (Pedro Muniz)
  • avoid unnecessary allocations (Nikita Sivukhin)
  • Make sure explicit column aliases have binding precedence in orderby (Pavan Nambi)
  • tests/integration: Reduce collation fuzz test iterations (Pekka Enberg)
  • Switch random blob creation to get_random (Pedro Muniz)
  • Shared WAL lock scoping (Pedro Muniz)
  • Remove tests that alter testing.db from views.test (Preston Thorpe)
  • tests/integration: Disable rowid alias differential fuzz test case (Pekka Enberg)
  • core/storage: Reduce logging level (Pekka Enberg)
  • cli: Improve manual page display (Pavan Nambi)
  • stress: prevent thread from holding write lock and then stopping (Jussi Saurio)
  • translate/select: prevent multiple identical non-aliased table references (Preston Thorpe)
  • Prevent on conflict column definitions on CREATE TABLE or opening DB (Preston Thorpe)
  • cli: .tables and .indexes to show data from attached tables aswell (Konstantinos Artopoulos)
  • bindings/rust: propagate the DropBehavior of a dropped tx to next access of DB, instead of panicing (Jussi Saurio)
  • Replace io_yield_many with completion groups (Pekka Enberg)
  • core/bree: remove duplicated code in BTreeCursor (Pere Diaz Bou)
  • core: Unsafe Send and Sync pushdown (Pekka Enberg)
  • Run SQLite integrity check after stress test run (Pedro Muniz)
  • Document ThreadSanitizer in CONTRIBUTING.md (Pekka Enberg)
  • tests/fuzz: Accept SEED env var for all fuzz tests (Preston Thorpe)
  • Make Rust bindings actually async (Pedro Muniz)
  • perf/throughput: force sqlite to use fullfsync (Pedro Muniz)
  • relax check in the vector test (Nikita Sivukhin)
  • Allow using indexes to iterate rows in UPDATE statements (Jussi Saurio)
  • Refactor INSERT translation to a modular setup with emitter context (Preston Thorpe)
  • increment Changes() only once conditionally (Pavan Nambi)
  • make comparison case sensitive (Pavan Nambi)
  • bindings/rust: Bump version recommendation to 0.2 (Kyle Kelley)
  • Run simulator under Miri (Bob Peterson)
  • Import workspace crates by name and not path (Pedro Muniz)
  • names shall not be shared between tables,indexs,vtabs,views (Pavan Nambi)
  • Get aliases to where shall they be used (Pavan Nambi)
  • remove cfg for MAP_ANONYMOUS (Pedro Muniz)
  • Simulator: Drop Index (Pedro Muniz)
  • Restrict joins to max 63 tables and allow arbitrary number of table columns (Jussi Saurio)
  • Simulator: persist files in sim memory IO for integrity check (Pedro Muniz)
  • Simulator: ALTER TABLE (Pedro Muniz)
  • Move all checksum tests behind the feature flag (Avinash Sajjanshetty)
  • Nyrkiö nightly: Reduce frequency to 1 per 24h (Henrik Ingo)
  • Vector improvements (Nikita Sivukhin)
  • Optimize sorter (Jussi Saurio)
  • Make sqlite_version() compatible with SQLite (Glauber Costa)
  • optimizer: optimize range scans to use upper and lower bounds more efficiently (Jussi Saurio)
  • translate: make bind_and_rewrite_expr() reject unbound identifiers if no referenced tables exist (Jussi Saurio)
  • Simulator: ignore Property::AllTableHaveExpectedContent when counting stats (Pedro Muniz)
  • When pwritev fails, clear the dirty pages (Pedro Muniz)
  • mvcc: Disable automatic checkpointing by default (Pekka Enberg)
  • Integrity check enhancements (Jussi Saurio)
  • Remove unsafe pointers (RawSlice) from RefValue (Levy A.)
  • Make table name not repeat in simulator (bit-aloo)
  • perf/throughput: Delete database before benchmark run (Pekka Enberg)
  • emit proper column information for explain prepared statements (Nikita Sivukhin)
  • core/mvcc/logical-log: switch RwLock to parking_lot (Pere Diaz Bou)
  • Modify Interactions Generation to only generate possible queries (Pedro Muniz)
  • eliminate the need for another Once in Completion (Pedro Muniz)
  • Rename Completion methods (Pedro Muniz)
  • Top level examples (Nikita Sivukhin)
  • docs: Explain BEGIN CONCURRENT (Pekka Enberg)
  • MVCC: do checkpoint writes in ascending order of rowid (Jussi Saurio)
  • core/mvcc: filter out seek results where is not same table_id (Pere Diaz Bou)
  • Simulator diff print (Pedro Muniz)
  • Improve simulator cli (bit-aloo)
  • core/mvcc: automatic logical log checkpointing on commit (Pere Diaz Bou)
  • remove dyn DatabaseStorage replace it with DatabaseFile (Pedro Muniz)
  • Actually enforce uniqueness in create unique index (Jussi Saurio)
  • core/wal: check index header on begin_write_tx (Pere Diaz Bou)
  • Disallow unexpected interop between WAL mode and MVCC mode (Jussi Saurio)
Fixed
  • Fix database state going back in time after sync (Nikita Sivukhin)
  • Fix foreign key constraint enforcement on UNIQUE indexes (Jussi Saurio)
  • bindings/javascript: Improve open error messages (Pekka Enberg)
  • core/storage: Fix WAL already enabled issue (Pekka Enberg)
  • Return better syntax error messages (Diego Reis)
  • core/vdbe: fix ALTER COLUMN to propagate constraints to other table references (Preston Thorpe)
  • core/translate: fix ALTER COLUMN to propagate other constraint references (Preston Thorpe")
  • core/translate: fix ALTER COLUMN to propagate other constraint references (Preston Thorpe)
  • Fix deferred FK violations check before committing to WAL (Jussi Saurio)
  • translate/select: Fix rewriting Rowid expression when no btree table exists in joined table refs (Preston Thorpe)
  • Throw parse error on CHECK constraint in create table (Preston Thorpe)
  • Fix: rolling back tx on Error should set autocommit to true (Jussi Saurio)
  • Fix: outer CTEs should be available in subqueries (Jussi Saurio)
  • Fix change counter incrementation (Jussi Saurio)
  • Fix another "should have been rewritten" translation panic (Jussi Saurio)
  • Simulator: fix alter table shadowing to modify index column name (Pedro Muniz)
  • fix backwards compatible rowid alias behaviour (Pedro Muniz)
  • Fix typo in manual.md (Yevhen Kostryka)
  • core/vdbe: Improve IdxDelete error messages with context (Pekka Enberg)
  • Fix disallow reserved prefixes in ALTER TABLE RENAME TO (xmchx)
  • Fix incorrectly using an equality constraint twice for index seek (Jussi Saurio)
  • Fix IN operator NULL handling (Diego Reis)
  • Cleanup Simulator + Fix Column constraints in sql generation (Pedro Muniz)
  • Fix rusqlite compatibility claim (Dave Warnock)
  • Fix re-entrancy of op_destroy (used by DROP TABLE) (Jussi Saurio)
  • Fix VDBE program abort (Nikita Sivukhin)
  • Fix attach I/O error with in-memory databases (Preston Thorpe)
  • core/incremental: Fix re-insertion of data with same key (Glauber Costa)
  • core/io/unix: Fix short writes in try_pwritev_raw() (FamHaggs)

v0.2.2: 0.2.2 -- 2025-10-08

Compare Source

Release Notes

Added
  • add basic examples for database-wasm package (Nikita Sivukhin)
  • core/incremental: Implement "is null" and "is not null" tests for view filter (Glauber Costa)
Updated
  • core/mvcc: filter out seek results where is not same table_id (Pere Diaz Bou)
Fixed
  • Fix attach I/O error with in-memory databases (Preston Thorpe)
  • core/incremental: Fix re-insertion of data with same key (Glauber Costa)

Install turso_cli 0.2.2

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.2/turso_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.2/turso_cli-installer.ps1 | iex"

Download turso_cli 0.2.2

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.2.1: 0.2.1 -- 2025-10-04

Compare Source

Release Notes

Added
Updated
  • Actually enforce uniqueness in create unique index (Jussi Saurio)
  • Disallow unexpected interop between WAL mode and MVCC mode (Jussi Saurio)
Fixed
  • core/io/unix: Fix short writes in try_pwritev_raw() (FamHaggs)

Install turso_cli 0.2.1

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.1/turso_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.1/turso_cli-installer.ps1 | iex"

Download turso_cli 0.2.1

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the [GitHub CLI](https://cli.github.com/manual/gh_attestation_ve


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/turso-0.x branch from ba16479 to c6d9f64 Compare November 2, 2025 00:06
@renovate renovate bot changed the title Update Rust crate turso to 0.2 Update Rust crate turso to 0.3 Nov 2, 2025
@renovate renovate bot force-pushed the renovate/turso-0.x branch from c6d9f64 to 726708b Compare November 3, 2025 23:02
@renovate renovate bot force-pushed the renovate/turso-0.x branch from 726708b to bd3ee47 Compare December 12, 2025 07:02
@renovate renovate bot force-pushed the renovate/turso-0.x branch 2 times, most recently from 92f589e to 9603cfc Compare January 6, 2026 00:00
@renovate renovate bot changed the title Update Rust crate turso to 0.3 Update Rust crate turso to 0.4 Jan 6, 2026
@renovate renovate bot force-pushed the renovate/turso-0.x branch from 9603cfc to a7ad39a Compare January 7, 2026 19:50
@renovate renovate bot force-pushed the renovate/turso-0.x branch from a7ad39a to 765e930 Compare January 13, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant