Releases: tursodatabase/turso
v0.4.0-pre.2
Install turso_cli 0.4.0-pre.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.4.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.4.0-pre.2/turso_cli-installer.ps1 | iex"Download turso_cli 0.4.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.4.0-pre.1
Install turso_cli 0.4.0-pre.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.4.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.4.0-pre.1/turso_cli-installer.ps1 | iex"Download turso_cli 0.4.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-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>0.3.2 -- 2025-11-02
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 | shInstall 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/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.3.1 --2025-11-01
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 | shInstall 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/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.3.0 -- 2025-10-30
Release Notes
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::AllTableHaveExpectedContentwhen 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) fromRefValue(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
Oncein 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 DatabaseStoragereplace it withDatabaseFile(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 ...
v0.3.0-pre.7
Install turso_cli 0.3.0-pre.7
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.7/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.7/turso_cli-installer.ps1 | iex"Download turso_cli 0.3.0-pre.7
| 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.5
Install turso_cli 0.3.0-pre.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.5/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.5/turso_cli-installer.ps1 | iex"Download turso_cli 0.3.0-pre.5
| 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.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>