Releases: tursodatabase/turso
v0.3.0-pre.4
Install turso_cli 0.3.0-pre.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.4/turso_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.4/turso_cli-installer.ps1 | iex"Download turso_cli 0.3.0-pre.4
| 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/tursoYou 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-pre.3
Install turso_cli 0.3.0-pre.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.3/turso_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.3/turso_cli-installer.ps1 | iex"Download turso_cli 0.3.0-pre.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/tursoYou 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-pre.2
Install turso_cli 0.3.0-pre.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.2/turso_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.2/turso_cli-installer.ps1 | iex"Download turso_cli 0.3.0-pre.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/tursoYou 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-pre.1
Install turso_cli 0.3.0-pre.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.1/turso_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.1/turso_cli-installer.ps1 | iex"Download turso_cli 0.3.0-pre.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:
gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/tursoYou 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>0.2.2 -- 2025-10-08
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 | shInstall 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/tursoYou 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>0.2.1 -- 2025-10-04
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 | shInstall 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:
gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/tursoYou 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>0.2.0 -- 2025-10-03
Release Notes
Added
- docs: Add section on MVCC limitations (Pekka Enberg)
- sim: add Profile::SimpleMvcc (Jussi Saurio)
- Add encryption internals docs (Avinash Sajjanshetty)
- core/storage: Apple platforms support (Charly Delaroche)
- Reject unsupported FROM clauses in UPDATE (Mikaël Francoeur)
- Add Database::indexes_enabled() (Jussi Saurio)
- Add Mold linker setup to CONTRIBUTING.md (Pekka Enberg)
- support multiple conflict clauses in upsert (Nikita Sivukhin)
- stress: add option to choose how many tables to generate (Pere Diaz Bou)
- add manual page about materialized views (Glauber Costa)
- support mixed integer and float expressions in the expr_compiler (Glauber Costa)
- github: Add 30 minute timeout to all jobs (Pekka Enberg)
- Add
CASTto fuzzer (Levy A.) - Implement json_tree (Mikaël Francoeur)
- translate: disable support for UPDATE ... ORDER BY (Jussi Saurio)
- MVCC: support alter table (Jussi Saurio)
- mvcc: add blocking checkpoint (Jussi Saurio)
- Add built-in manual pages for Turso (Glauber Costa)
- Support referring to rowid as rowid or oid (Jussi Saurio)
- translate: implement Sequence opcode and fix sort order (Preston Thorpe)
- mvcc: add blocking checkpoint lock (Jussi Saurio)
- translate/emitter: Implement partial indexes (Preston Thorpe)
- Support UNION queries in DBSP-based Materialized Views (Glauber Costa)
- Add encryption throughput test (Avinash Sajjanshetty)
- Support JOINs in DBSP materialized views (Glauber Costa)
- Fix C API compatibility tests and add a minimal CI (Andrea Peruffo)
- Introduce instruction VTABLE (Lâm Hoàng Phúc)
- core/mvcc: introduce with_header for MVCC header update tracking (Pere Diaz Bou)
- Inital support for window functions (Piotr Rżysko)
- Implement Min/Max aggregators (Glauber Costa)
- Add quoted identifier test cases for
ALTER TABLE(Levy A.) - add perf/throughput/rusqlite to workspace (Pedro Muniz)
- add perf/throughput/turso to workspace (Pedro Muniz)
- Add per page checksums (Avinash Sajjanshetty)
- core/throughput: Add per transaction think time support (Pekka Enberg)
- Fix simulator docker build chef by adding whopper directory (Preston Thorpe)
- Implement the balance_quick algorithm (Jussi Saurio)
- benchmark: introduce simple 1 thread concurrent benchmark for mvcc/sq… (Pere Diaz Bou)
- perf: Add simple throughput benchmark (Pekka Enberg)
- Add BEGIN CONCURRENT support for MVCC mode (Pekka Enberg)
- add explicit usize type annotation to range iterator in test (Denizhan Dakılır)
- whopper: A new DST with concurrency (Pekka Enberg)
- serverless: Add Connection.reconnect() method (Mayank)
- Return parse error for unsupported exprs (Jussi Saurio)
- translate: return parse error for unsupported join types (Jussi Saurio)
- Add scripts that help debug bugs from simulator (Jussi Saurio)
- core: Support ceiling modifier in datetime (Ceferino Patino)
Updated
- CI: run long fuzz tests and stress on every PR, use 2 threads for stress (Jussi Saurio)
- Disallow INDEXED BY / NOT INDEXED in select (Jussi Saurio)
- core/mvcc: Rename "-lg" to "-log" (Pekka Enberg)
- docs: Document more CLI command line options (Pekka Enberg)
- Update man pages for encryption (Avinash Sajjanshetty)
- core/mvcc: Return completions from logical log methods (Pedro Muniz)
- Improve MCP configuration docs (Jamie Barton)
- Enable encryption properly in Rust bindings, whopper, and throughput tests (Avinash Sajjanshetty)
- Enable checksums only if its opted in via feature flag (Avinash Sajjanshetty)
- Sync engine defered sync (Nikita Sivukhin)
- core/vdbe: Avoid cloning Arc on every VDBE step (Pekka Enberg)
- mvcc: dont try to end pager tx on connection close (Jussi Saurio)
- Allow workflow_dispatch for all CI to allow for re-running jobs (Preston Thorpe)
- printf should truncates floats (Pavan Nambi)
- simulator: reopen database with mvcc and indexes when necessary (Pedro Muniz)
- core/storage: Switch page cache queue to linked list (Pekka Enberg)
- Improve throughput benchmarks (Pekka Enberg)
- Beta (Pekka Enberg)
- make connect() method optional and call it implicitly on first query execution (Nikita Sivukhin)
- mvcc: dont use mv store for ephemeral tables (Jussi Saurio)
- Simulator: Concurrent transactions (Pedro Muniz)
- Measure read/write latencies in encryption benchmarks (Avinash Sajjanshetty)
- simplify
exec_trimcode + only pattern match on whitespace char (Pedro Muniz) - MVCC: Handle table ID / rootpages properly for both checkpointed and non-checkpointed tables (Jussi Saurio)
- Make encryption opt in via flag (Avinash Sajjanshetty)
- core/mvcc: Optimize exclusive transaction check (Pekka Enberg)
- core: change root_page to i64 (Pere Diaz Bou)
- core/storage: Remove unused import from encryption.rs (Pekka Enberg)
- small improvement of stress testing tool (Nikita Sivukhin)
- sum() can throw integer overflow (Duy Dang)
- correct span in ParseUnexpectedToken (Lâm Hoàng Phúc)
- Remove double-quoted identifier assert (Diego Reis)
- substr scalar should also work with non-text values (Diego Reis)
- core: Disallow CREATE INDEX when MVCC is enabled (Pekka Enberg)
- javascript: Rename "browser" packages to "wasm" (Pekka Enberg)
- core/vdbe: Wrap Program::n_change with AtomicI64 (Pekka Enberg)
- use explicit null if it set instead of column default value (Nikita Sivukhin)
- Improve encryption module (Avinash Sajjanshetty)
- Remove vendored parser now that we have our own (Preston Thorpe)
- core/storage: Wrap Pager::commit_info with RwLock (Pekka Enberg)
- core/storage: Wrap WalFile::{max,min}_frame with AtomicU64 (Pekka Enberg)
- core/storage: Wrap WalFile::max_frame_read_lock_index with AtomicUsize (Pekka Enberg)
- core/storage: Mark Page as Send and Sync (Pekka Enberg)
- Move turso.png image to assets directory (Preston Thorpe)
- core/translate: rewrite default column value from identifier to string literal (Preston Thorpe)
- core/translate: Persist NOT NULL column constraint to schema table (Preston Thorpe)
- Sqlean fuzzy string (Danawan Bimantoro)
- Make Sorter Send and Sync (Pekka Enberg)
- length shall not count when it sees nullc (Pavan Nambi)
- core/storage: Wrap WalFile::syncing with AtomicBool (Pekka Enberg)
- Make MVCC code Send and Sync (Pekka Enberg)
- core: recover logical log on
Database::connect(Pere Diaz Bou) - core/storage: Display page category for rowid integrity check failure (Pekka Enberg)
- translate: refactor arguments and centralize parameter context (Preston Thorpe)
- translate: disallow creating/dropping internal tables (Jussi Saurio)
- Improve DBSP view serialization (Glauber Costa)
- Disallow multiple primary keys in table definition (Jussi Saurio)
- Display nothing for .schema command when table not found (Preston Thorpe)
- Make Connection Send (Pekka Enberg)
- core/mvcc/logical-log: refactor get log path in tests (Pere Diaz Bou)
- Disallow ORDER BY and LIMIT in a non-compound VALUES() statement (Jussi Saurio)
- core: Wrap Connection::mv_tx with RwLock (Pekka Enberg)
- Autoincrement (Pavan Nambi)
- core/mvcc/logical-log: load logical log from disk (Pere Diaz Bou)
- Normalize target table name identifier on table or column rename (Iaroslav Zeigerman)
- use a different seed for
gen_rng(Pedro Muniz) - core: Wrap Connection::attached_databases with RwLock (Pekka Enberg)
- core/mvcc/logical-log: on disk format for logical log (Pere Diaz Bou)
- Wrap more Connection fields with atomics (Pekka Enberg)
- core/mvcc: Wrap Transaction::database_header with RwLock (Pekka Enberg)
- core: Wrap Connection::capture_data_changes in RwLock (Pekka Enberg)
- antithesis-tests: Rename "utils.py" to "helper_utils.py" (Pekka Enberg)
- Make some Connection fields atomic (Pekka Enberg)
- Simulator Runtime generation (Pedro Muniz)
- Use SQL over HTTP batch statements for sync push (Nikita Sivukhin)
- JavaScript bindings browser tests (Nikita Sivukhin)
- core: Wrap Connection::transaction_state with RwLock (Pekka Enberg)
- core: Wrap Connection::autocommit in AtomicBool (Pekka Enberg)
- use wasm-runtime from NPM instead of patched sources (Nikita Sivukhin)
- core: Wrap Connection::database_schemas in RwLock (Pekka Enberg)
- core: Wrap Connection::schema in RwLock (Pekka Enberg)
- Stop incrementing n_changes for idx delete (Preston Thorpe)
- core: Wrap Connection::pager in RwLock (Pekka Enberg)
- Disable extension loading at runtime (Preston Thorpe)
- mvcc: simplify StateMachine (Jussi Saurio)
- core: Wrap Pager::io_ctx in RwLock (Pekka Enberg)
- Enable checksum tests if checksum feature is on (Kacper Kołodziej)
- Wrap Pager vacuum state in RwLock (Pekka Enberg)
- Enhancement to Sim Snapshot isolation code (Pedro Muniz)
- core/io: Ensure callbacks are invoked once (Pedro Muniz)
- Upgrade dist to 0.30.0 (Pekka Enberg)
- Sync improvements (Nikita Sivukhin)
- Remove some unnecessary unsafe impls (Pedro Muniz)
- Pragma busy timeout (Nikita Sivukhin)
- translate/optimize: centralize AST/expr traversal (Preston Thorpe)
- prevent alter table with materialized views (Glauber Costa)
- core/mvcc: Wrap LogicalLog in RwLock (Pekka Enberg)
- mvcc: remove unused code related to is_logical_log() (Jussi Saurio)
- Put the unused variable behind a flag as intended (Avinash Sajjanshetty)
- whopper: Gracefully handle file size limits in simulator (Avinash Sajjanshetty)
- core/storage: Wrap Pager::header_ref_state in RwLock (Pekka Enberg)
- core/mvcc: Kill noop storage (Pekka Enberg)
- core/mvcc: LogicalLog simple append serializer (Pere Diaz Bou)
- core/storage: Wrap Pager::free_page_state with RwLock (Pekka Enberg)
- core: Rename Connection::_db to db (Pekka Enberg)
- core/storage: Switch Pager::max_page_count to AtomicU32 (Pekka Enberg)
- core/storage: Use AtomicU16 for Pager::reserved_space (Pekka Enberg)
- remove io.blocks from btree balancing code (Nikita Sivukhin)
- core: Use sequential consistency for atomics by default (Pekka Enberg)
- core/storage: Use AtomicU32 for Pager::page_size (Pekka Enberg)
- Convert more Pager fields towards being Send (Pekka Enberg)...
v0.2.0-pre.15
Install turso_cli 0.2.0-pre.15
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.15/turso_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.15/turso_cli-installer.ps1 | iex"Download turso_cli 0.2.0-pre.15
| 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/tursoYou 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.0-pre.14
Install turso_cli 0.2.0-pre.14
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.14/turso_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.14/turso_cli-installer.ps1 | iex"Download turso_cli 0.2.0-pre.14
| 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/tursoYou 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.0-pre.13
Install turso_cli 0.2.0-pre.13
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.13/turso_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.13/turso_cli-installer.ps1 | iex"Download turso_cli 0.2.0-pre.13
| 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/tursoYou 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>