github tursodatabase/turso v0.1.2
0.1.2 -- 2025-07-15

latest releases: v0.1.5-pre.3, v0.1.5-pre.2, v0.1.5-pre.1...
one month ago

Release Notes

Added

  • Add fuzz to CI checks (Levy A.)
  • Add async header accessor functionality (Zaid Humayun)
  • core/vector: Euclidean distance support for vector search (KarinaMilet)
  • Fix: OP_NewRowId to generate semi random rowid when largest rowid is i64::MAX (Krishna Vishal)
  • vdbe: fix some issues with min() and max() and add ignored fuzz test (Jussi Saurio)
  • github: Update to newest Nyrkiö Github action (Henrik Ingo)
  • Add Nyrkiö to partners section in README (Henrik Ingo)
  • Support except operator for Compound select (meteorgan)
  • btree: fix incorrect comparison implementation in key_exists_in_index() (Jussi Saurio)
  • bindings/java: Implement required methods to run on JetBrains Datagrip (Kim Seon Woo)
  • add interactive transaction to property insert-values-select (Pere Diaz Bou)
  • add pere to antithesis (Pere Diaz Bou)
  • cli: Add support for .headers command (Pekka Enberg)
  • stress: add a way to run stress with indexes enabled (Jussi Saurio)
  • sim: add feature flags (indexes,mvcc) to CLI args (Jussi Saurio)
  • Add multi select test in JDBC4StatementTest (Kim Seon Woo)
  • bindings/dart initial implementation (Andika Tanuwijaya)
  • bindings/javascript: Implement Database.open (Lucas Forato)
  • add libsql_disable_wal_checkpoint (Pedro Muniz)
  • Add a threshold for large page cache values (Krishna Vishal)
  • Rollback schema support (Pere Diaz Bou)
  • add a README for the rust bindings (Glauber Costa)
  • add a basic readme for the typescript binding (Glauber Costa)
  • add a benchmark for connection time versus number of tables (Glauber Costa)
  • Add opening new connection from a sqlite compatible URI, read-only connections (Preston Thorpe)
  • Simplify PseudoCursor implementation (Levy A.)
  • bind/js: add tests for expand (Mikaël Francoeur)

Updated

  • Gopher is biologically closer to beavers than hamsters (David Shekunts)
  • build: Update cargo-dist to 0.28.6 (Pekka Enberg)
  • cli: Fail import command if table does not exists (Pekka Enberg)
  • Assert I/O read and write sizes (Pere Diaz Bou)
  • do not check rowid alias for null (Nikita Sivukhin)
  • CDC functions (Nikita Sivukhin)
  • Ignore double quotes around table names (Zaid Humayun)
  • Efficient Record Comparison and Incremental Record Parsing (Krishna Vishal)
  • parse_schema_rows optimizations (Levy A.)
  • Simulator - only output color on terminal (Mikaël Francoeur)
  • Btree: more balance docs (Jussi Saurio)
  • btree: Improve balance non root docs (Jussi Saurio)
  • properly set last_checksum after recovering wal (Pere Diaz Bou)
  • btree/chore: remove unnecessary parameters to .cell_get() (Jussi Saurio)
  • core/btree: Make cell field names consistent (Jussi Saurio)
  • Enforce TCL 8.6+ in compatibility tests (Mikaël Francoeur)
  • Minor refactoring of btree (meteorgan)
  • bindings/python: Start transaction implicitly in execute() (Pekka Enberg)
  • sqlite3_ondisk: generalize left-child-pointer reading function to both index/table btrees (Jussi Saurio)
  • sim: post summary to slack (Jussi Saurio)
  • stress clippy (Jussi Saurio)
  • Synchronize WAL checkpointing (Pere Diaz Bou)
  • Reachable assertions in Antithesis Python Test for better logging (Pedro Muniz")
  • bindings/python: close connection only when reference count is one (Pere Diaz Bou)
  • parser: use YYSTACKDEPTH (Lâm Hoàng Phúc)
  • CI: remove duplicate fuzz run (Jussi Saurio)
  • Use binary search in find_cell() (Ihor Andrianov)
  • Use str_to_f64 on float conversion (Levy A.)
  • parser: replace KEYWORDS with matching (Lâm Hoàng Phúc)
  • Reachable assertions in Antithesis Python Test for better logging (Pedro Muniz)
  • treat ImmutableRecord as Value::Blob (Nikita Sivukhin)
  • remove experimental_flag from script + remove -q flag default flag from TestTursoShell (Pedro Muniz)
  • Change data capture (Nikita Sivukhin)
  • Import subset of SQLite TCL tests (Pekka Enberg)
  • bindings/java: Merge JavaScript test suites (Mikaël Francoeur)
  • Import JavaScript bindings test suite from libSQL (Mikaël Francoeur)
  • bindings/java: Rename to Turso (Diego Reis)
  • Antithesis schema rollback tests (Pekka Enberg)
  • Disable adaptive colors when output_mode is list (meteorgan)
  • core/storage: Switch to turso_assert in btree.rs (Pekka Enberg)
  • core: Disable ROLLBACK statement (Pekka Enberg")
  • Rust binding improvements (Pedro Muniz")
  • from_uri was not passing mvcc and indexes flag to database creation for memory path (Pedro Muniz)
  • Turso, not Limbo, in pyproject.toml (Simon Willison)
  • Rename Limbo -> Turso in python tests (Preston Thorpe)
  • clarify discord situation (Glauber Costa)
  • automatically select terminal colors for pretty mode (Glauber Costa)
  • remote query_mode from ProgramBuilderOpts and from function arguments (Nikita Sivukhin)
  • limbo -> turso (Glauber Costa)
  • Rust binding improvements (Pedro Muniz)

Fixed

  • test/fuzz: fix rowid_seek_fuzz not being a proper fuzz test (Jussi Saurio)
  • b-tree: fix bug in case when no matching rows was found in seek in the leaf page (Nikita Sivukhin)
  • Fix clippy errors for Rust 1.88.0 (Nils Koch)
  • sim: return LimboError::Busy when busy, instead of looping forever (Jussi Saurio)
  • btree/balance/validation: fix divider cell insert validation (Jussi Saurio)
  • btree/balance/validation: fix use-after-free in rightmost ptr validation (Jussi Saurio)
  • core/translate: Fix "misuse of aggregate function" error message (Pekka Enberg)
  • core/translate: Return error if SELECT needs tables and there are none (Mikaël Francoeur)
  • antithesis: Fix transaction management (Pekka Enberg)
  • core: Fix resolve_function() error messages (Pekka Enberg)
  • VDBE: fix op_insert re-entrancy (Jussi Saurio)
  • VDBE: fix op_idx_insert re-entrancy (Jussi Saurio)
  • bindings/javascript: Improve error handling compatibility with better-sqlite3 (Mikaël Francoeur)
  • uv run ruff format && uv run ruff check --fix (Jussi Saurio)
  • vdbe: fix compilation (Pere Diaz Bou)
  • core/translate: Fix aggregate star error handling in prepare_one_sele… (Pekka Enberg)
  • Fix infinite loops, rollback problems, and other bugs found by I/O fault injection (Pedro Muniz)
  • core/translate: Unify no such table error messages (Pekka Enberg)
  • Fix ScalarFunc::Glob to handle NULL and other value types (Krishna Vishal)
  • fix: buffer pool is not thread safe problem (KaguraMilet)
  • Fix index update when INTEGER PRIMARY KEY (rowid alias) (Adrian-Ryan Acala)
  • Fix Python test import naming (Pedro Muniz)
  • Fix boxed memory leaks (Ihor Andrianov)
  • bindings/javascript: Formatting and typos (Mikaël Francoeur)

Install turso_cli 0.1.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.1.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.1.2/turso_cli-installer.ps1 | iex"

Download turso_cli 0.1.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>

Don't miss a new turso release

NewReleases is sending notifications on new releases.