Release Notes
Added
- core/mvcc: add passive checkpoint (Pere Diaz Bou)
- dotnet: support NativeAOT static native linking (Marc-André Moreau)
- core/alloc: add stable push_within_capacity helper (Pedro Muniz)
- core/storage: add savepoint rollback consistency intent (Pekka Enberg)
- Add some testing guidance for agents (Pekka Enberg)
- Add Aristo WAL verification (Sushant Dinesh)
- add artificial wait for sticky disk to have latest snapshot (Pedro Muniz)
- sync/engine: add missing fsync() (Nikita Sivukhin)
- Add Windows ARM64 CLI release support (Marc-André Moreau)
- Add .NET remote transactions and batches (Marc-André Moreau)
- Add .NET remote Hrana execution (Marc-André Moreau)
- Add Turso EF Core SQLite provider (Marc-André Moreau)
- mvcc: Add fallible MVCC row payload allocation sites (Pedro Muniz)
- Add mobile NuGet native targets (Marc-André Moreau)
- core: register additional virtual tables into the catalog (Glauber Costa)
- alloc: add specialization in nightly for Vec (Pedro Muniz)
- core/alloc: Add allocation site annotations and out-of-memory fault injector (Pedro Muniz)
- mvcc: lazily resolve shadow in new IndexShadowFinger (Preston Thorpe)
- mvcc: add allocator generic to mv store (Pedro Muniz)
- Add SQL-standard scalar functions and PG-compatible aliases (Glauber Costa)
- Add shared buffer views for serialization callbacks (Pedro Muniz)
- Reject
ALTER TABLE ADD COLUMwhen generated-columns flag is off (Vartan Babayan) - add win tests for db/sync on js (Nikita Sivukhin)
- Add .NET NuGet package publishing workflow (Marc-André Moreau)
- mvcc: add sequence_watermark function and track sequence allocations (Preston Thorpe)
- Refactor memory benchmark into library + add CodSpeed CI tracking (Pedro Muniz)
- core/skiplist: use TursoAllocator for node allocation and add fallible inserts (Pedro Muniz)
- serverless/javascript: add option for custom request headers (Nikita Sivukhin)
- add yielding IO back-end for turso-stress to test async re-entrancy (Preston Thorpe)
- python: enable Tantivy FTS and add tests (Pekka Enberg)
- feat: add PostgreSQL-style sequences and MVCC-safe AUTOINCREMENT (Glauber Costa)
- core/storage: Only mark WAL initialized after a successful header sync (Pekka Enberg)
- core/mvcc: avoid SeekingToLast with MVCC in newrowid (Pere Diaz Bou)
- Window functions plumbing 1: add stubs for builtins, refactor row_number() to use VDBE aggregate machinery (Jussi Saurio)
- core/translate: support FILTER in window clauses (Jussi Saurio)
- Add mvcc recovery benchmark (Mikaël Francoeur)
- core: Add WITHIN GROUP ordered-set aggregates (Glauber Costa)
- Add recovery-heavy profile to Whopper (Mikaël Francoeur)
- Introduce portable logical log metadata for turso sync (Preston Thorpe)
- Add regression test for incorrect OR expression handling (Pavan Nambi)
- core/io: add runtime-registrable Rust IO backend (Robert Sturla)
- extensions: add macro for context-scalar functions (Preston Thorpe)
- Add core custom collation support (Marc-André Moreau)
- Add managed aggregate callback support (Marc-André Moreau)
- core/mvcc: set read_set to Vec and add batch query read bench (Pere Diaz Bou)
- Add managed scalar callback foundation (Marc-André Moreau)
- core/mvcc: add MVCC recovery regression cases (Avinash Sajjanshetty)
- COMPAT.MD: fix errors, be more precise, add turso-specific PRAGMAs (Jussi Saurio)
- Support UPSERT targets on partial indexes (Pedro Muniz)
- agent: add yield injections skill (Avinash Sajjanshetty)
- core/mvcc: Add per-connection extension loading (Marc-André Moreau)
- core/translate/optimizer: support non-equijoin FULL OUTER JOIN (russell romney)
- introduce ImmutableRecordRef to reduce cloning (Mikaël Francoeur)
- Add locale-backed collations to Turso (Aziz Batihk)
- Add SQLite-compatible .NET bindings (Marc-André Moreau)
- Add Database.batch() method to JavaScript SDKs (Pekka Enberg)
- simulator: support virtual columns (Mikaël Francoeur)
- Add allocator API for fallible allocation (Pedro Muniz)
- bindings/javascript: Add concurrent transaction support (Pekka Enberg)
- Add section on AI coding to CONTRIBUTING.md (Pekka Enberg)
- apply virtual gen-col affinity in OLD probe and NEW key (Mikaël Francoeur)
Updated
- core: reject co-enablement of MVCC and multiprocess WAL (Jussi Saurio)
- core/translate: use abort journal analysis for upsert DO UPDATE arms (roboturso)
- build(deps): bump js-yaml from 4.1.0 to 4.3.0 in /bindings/javascript (app/dependabot)
- build(deps): bump ws in /examples/react-native (app/dependabot)
- Eliminate blocking I/O in page cache spill path (Nikita Sivukhin)
- build(deps): bump shell-quote from 1.8.3 to 1.10.0 in /examples/react-native (app/dependabot)
- core/json: coerce numeric JSONB aggregate object labels to strings (Hossam Khero)
- Drop the beta warning (Glauber Costa)
- core/btree: invalidate shape caches on peer writes; drop trigger workaround (Glauber Costa)
- core: disallow multiple write stmts in single connection and poison tx if half-done write stmt is abandoned (Jussi Saurio)
- bindings/js: serialize wasm native calls against sync-engine worker tasks (Jussi Saurio)
- testing/stress: reset shuttle step counter on iteration progress (Jussi Saurio)
- Page cache soft limit (Jussi Saurio)
- core/mvcc: mark recovery delete tombstones for truncated frames btree-resident (Mikaël Francoeur)
- core: make schema cloning fallible (Pedro Muniz)
- schema: make sqlite_schema bootstrap allocation fallible (Pedro Muniz)
- schema: make generated column graph allocation fallible (Pedro Muniz)
- Mvcc sync (Preston Thorpe)
- core/wal: prevent stale checkpoint backfill publish (Avinash Sajjanshetty)
- core/mvcc: reset index shadow finger when index keys are created mid-scan (roboturso)
- core/storage: capture savepoint WAL position during write_tx upgrade after acquiring write lock (Jussi Saurio)
- core/mvcc: finish live-version rewrite when a committed commit statement is dropped (roboturso)
- core: classify virtual tables by parsing schema SQL (roboturso)
- core/mvcc: keep exact-seek short-circuit for b-tree-only rows (roboturso)
- bump fossier dependency to allow for vouch command (Preston Thorpe)
- core/alloc: clone Vec elements through TryClone (Pedro Muniz)
- core: fsync WAL when raw frame insert session force-commits (Pekka Enberg)
- fossier: vouch for @roboturso (Preston Thorpe)
- core/translate: use try_push for create table column Vec (Pedro Muniz)
- core/vdbe: make vec allocations fallible (Pedro Muniz)
- core/translate: propagate fallible Vec allocations (Pedro Muniz)
- core/btree: clear abandoned B-tree overflow cells (Avinash Sajjanshetty)
- github: skip dotnet code signing on non-main branches (Pekka Enberg)
- core/storage: Remove checkpoint leak intent (Pekka Enberg)
- bindings/rust: break sync io worker retention cycle (Pekka Enberg)
- sqlite/parser: bound expression depth to prevent translator stack overflow (roboturso)
- github: drop sccache from workflows (Pekka Enberg)
- perf(vdbe): reuse btree cursor on OpenRead instead of rebuilding (Glauber Costa")
- perf(vdbe): reuse btree cursor on OpenRead instead of rebuilding (Glauber Costa)
- propagate push/pull thresholds to the python and golang SDK (Nikita Sivukhin)
- perf(vdbe): only build the comparator and clone the aggregate arg when needed (Glauber Costa)
- stress: use bare RNG methods (Mikaël Francoeur)
- core/vdbe: avoid overflow when cache_size is i32::MIN (roboturso)
- core/optimizer: improve starting table selection in greedy join (Akira Noda)
- core/pager: reset pager state on savepoint rollback (Pedro Muniz)
- Python bindings cleanup (Mikaël Francoeur)
- python: release the GIL and expose interrupt() / set_query_timeout() (Glauber Costa)
- core/mvcc: preserve B-tree cleanup markers in MVCC commit logs (Avinash Sajjanshetty)
- Delete memory benchmark artifact after run (Pedro Muniz)
- antithesis: squash targeting diff into targeted_coverage.json (Mikaël Francoeur)
- Bump concurrent-ruby from 1.3.3 to 1.3.7 in /examples/react-native (app/dependabot)
- core: allow deterministic date functions in generated columns (Artur Kantorczyk)
- core: allow custom allocator for MVStore (Pedro Muniz)
- refresh mvcc schema for checkpoint state machine when it acquires checkpoint lock (Jussi Saurio)
- Clarify in CONTRIBUTING.md that mold linker is Linux only (n3on p0rtal)
- github: code-sign Windows artifacts with Azure Artifact Signing (Pekka Enberg)
- Update references from limbo to turso in docs (n3on p0rtal)
- Exercise MVCC recovery in turso_stress (v2) (Mikaël Francoeur)
- antithesis diff-focused tests (Mikaël Francoeur)
- core/mvcc: retain ended btree_resident row versions till checkpoint (Avinash Sajjanshetty)
- Revert "core/mvcc: use per-MvStore skiplist collectors" (Pedro Muniz)
- core/mvcc: use per-MvStore skiplist collectors (Pedro Muniz)
- core/wal: do not mark dirty pages clean during WAL cacheflush (Avinash Sajjanshetty)
- Linear better than quadratic (Nikita Sivukhin)
- Move SQLite C API to bindings/c (Pekka Enberg)
- ci: Gate CodSpeed shards on matching build (Pedro Muniz)
- Move SQLite parser to
sqlite/parserdirectory (Pekka Enberg) - core: More blocking I/O removal (Preston Thorpe)
- core/btree: prevent leaking pinned pages in page stack (Preston Thorpe)
- sync: Use core allocator Vec in sync engine for compile reasons (Pedro Muniz)
- conformance/javascript: cover big integer round-trip with safe integers (Pekka Enberg)
- Eliminate quadratic performance for prepare of queries with a lot of parameters (Nikita Sivukhin)
- Track MVCC checkpoint allocation sites (Pedro Muniz)
- ci: shard CodSpeed benchmarks by toolchain and benchmark (Pedro Muniz)
- core: remove info instruments that can become verbose (Pere Diaz Bou)
- mvcc: use fallible skiplist allocations (Pedro Muniz)
- mvcc: decouple GC from checkpointing and make configurable (Preston Thorpe)
- avoid full range scan for index seek operation (Nikita Sivukhin)
- javascript: Return per-statement results from batch() (Pekka Enberg)
- Experimental features sync sdk (Nikita Sivukhin)
- mvcc: merge-iterate the index during forward btree scans (Pere Diaz Bou)
- core/mvcc: reuse record (Pere Diaz Bou)
- Revert single-pass recovery (Mikaël Francoeur)
- Make durable storage log completion awaitable (Pedro Muniz)
- core/translate: SQLite-compatible affinity check for index seeks (Jussi Saurio)
- Update to PyO3 0.29.0 (Pekka Enberg)
- Single-pass MVCC recovery (Mikaël Francoeur")
- mvcc: some memory use improvements (Preston Thorpe)
- simulator: dont rollback simulator connection level transaction state for create table failure (Preston Thorpe)
- core, sdk-kit: ColumnTypeInfo for custom-type-aware column metadata (Glauber Costa)
- mem usage in MVCC: pack timestamp begin/end in RowVersion (Preston Thorpe)
- core/mvcc: RowKey::Record set to Arc (Pere Diaz Bou)
- core: make the nightly allocator cfg build green and gate it in CI (Pedro Muniz)
- core/translate: Improve DDL compatibility with SQLite (Glauber Costa)
- Step result yield (Nikita Sivukhin)
- core/mvcc: Shrink version chains and remove empty slots at checkpoint (Pedro Muniz)
- logs: lower level for spam INFO logs (Nikita Sivukhin)
- core/skiplist: re-vendor crossbeam-skiplist from upstream main (Pedro Muniz)
- core: vendor crossbeam-skiplist 0.1.3 as core/skiplist module (Pedro Muniz)
- build(deps-dev): bump shell-quote from 1.8.3 to 1.8.4 in /bindings/react-native (app/dependabot)
- perf/connection: regenerate stale limbo lockfile to drop git2 (Pekka Enberg)
- build(deps-dev): bump @babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.7 in /bindings/react-native (app/dependabot)
- core/mvcc: checkpoint must use the schema of the database it operates on (Glauber Costa)
- Remove blocking IO from mvcc bootstrap and recovery paths (Preston Thorpe)
- lock cargo-fuzz to 0.13.0 to prevent CI failure (Preston Thorpe)
- build(deps): bump ws from 8.20.0 to 8.21.0 in /testing/conformance/javascript (app/dependabot)
- Preserve JS row positional values (Pedro Muniz)
- core/mvcc: Call checkpoint hooks during bootstrap recovery (Pedro Muniz)
- Discuss "can I work on it" in CONTRIBUTING.md (Pekka Enberg)
- core/translate: preserve declaration order when nesting window subqueries (Jussi Saurio)
- feat: REINDEX (Jussi Saurio)
- core/vdbe: Make scalar function edge cases SQLite compatible (Ben Zaid)
- core/schema: Migrate code to use fallible collect (Pedro Muniz)
- core/numeric: Coerce text exceeding i64::MAX to Float, not saturated int (Jussi Saurio)
- github: Use Blacksmith build-push action for simulator image build (Pekka Enberg)
- core/mvcc: allow custom durable storage for encrypted MVCC (Avinash Sajjanshetty)
- core/translate: case-insensitive NATURAL JOIN and USING column lookup (Jussi Saurio)
- Update devcontainer (Mikaël Francoeur)
- move runtime check to compile time (Mikaël Francoeur)
- Single-pass MVCC recovery (Mikaël Francoeur)
- do not rollback attached pagers on reprepare if the conn is inside transaction (Pedro Muniz)
- Expose managed extension APIs through SDK-kit and .NET bindings (Marc-André Moreau)
- core/mvcc: prevent stale tx from acquiring
exclusive_txafter concurrent commit (Avinash Sajjanshetty) - Rollback temp schema when dropping MVCC commit (Mikaël Francoeur)
- Bump idna from 3.11 to 3.15 (app/dependabot)
- bindings/rust: replace hyper-tls with hyper-rustls (PlumJam)
- Pin cargo-c to 0.10.16 due to rust-toolchain.toml being pegged at 1.88 (Yinka Makanjuola)
- core/mvcc: skip seeking on contigous writes to pager (Pere Diaz Bou)
- Bump openssl from 0.10.79 to 0.10.80 (app/dependabot)
- core/mvcc: store rowversion chain in mvcc iterator (Pere Diaz Bou)
- Begin to remove all blocking IO from core (Preston Thorpe)
- Rework Dockerfiles to use a
.dockerignore(Mikaël Francoeur) - core/mvcc: preempt checkpoint while collecting rows to write_set (Pere Diaz Bou)
- impl
try_from_iterforBox<[T]>(Pedro Muniz) - Remove StreamingLogicalLogReader::next_record (Mikaël Francoeur)
- refactor
Extendabletrait to use Result for fallible allocations (Pedro Muniz) - migrate
hash_table.rsto use fallible Vec (Pedro Muniz) - migrate
sorter.rsto use fallible vec allocations (Pedro Muniz) - migrate
order_by.rsto use fallible vec allocations (Pedro Muniz) - convert
expr_walk*to use iteration instead of recursion (Pedro Muniz) - core/mvcc: serialize buffer directly, avoid 2x buffer heap size (Pere Diaz Bou)
- core: raise recursion_limit to 256 for FromRepr on Insn (Glauber Costa)
- core/mvcc: Guard global_header write against out-of-order commits (Glauber Costa)
- core/mvcc: Rollback MVCC tx after commit conflicts with SchemaConflict (Jussi Saurio)
- core/mvcc: Skip transient view and trigger deletes during MVCC checkpoint (Jussi Saurio)
- Gate custom benchmark iterations for CodSpeed (Pedro Muniz)
- revert: make all fallible functions use current infallible methods for now (Pedro Muniz)
- core/mvcc: make MVCC integrity_check reprepare after checkpoint root publication (Avinash Sajjanshetty)
- bindings/python: enable PyO3 abi3-py310 for a single cross-version wheel (Pekka Enberg)
- core/mvcc: rollback savepoint on abandoned statement (Pere Diaz Bou)
- core: enable percentile extension by default (Preston Thorpe)
- github: Bump turso_whopper regression-test step timeout to 15 minutes (Pekka Enberg)
- github: Use Playwright container for wasm browser tests (Pekka Enberg)
- core/functions: Allow whitespace in datetime() arguments (HoangTechCS | AIE")
- tests/integration: Verify source MVCC log exists before
VACUUM INTO(Vartan Babayan) - core/functions: Allow whitespace in datetime() arguments (HoangTechCS | AIE)
- core/vdbe: Preserve blob bytes when casting to BLOB (Karina)
- core/mvcc: check schema cookie during get_commit_timestamp (Pere Diaz Bou)
- Only rollback if auto commit is true (Rohith Suresh)
- bindings/js/sync: bump concurrent-actions-consistency timeout to 30s (Pekka Enberg)
- sqlite3: Respect
n_bytelength insqlite3_prepare_{v2,v3}(Tommy Williams) - chore: rename project from "Limbo" to "Turso" (Nikolai Grlica)
- core/alter: Clear sqlite_sequence after removing AUTOINCREMENT (Nyasha Hama)
- core: invalidate deferred seek in op_seek_rowid (Mikaël Francoeur)
- Feature/6444 pragma vdbe trace (H)
- Do not reject delete_from sqlite_sequence incorrectly (Rohith Suresh)
- github: Bump
test-limbotimeout to 30 minutes (Pekka Enberg) - Github actions cleanups (Pekka Enberg)
- core: open with absolute path (Pere Diaz Bou)
- sdk-kit: clarify crates.io descriptions point Rust users to
turso(Pekka Enberg) - core/mvcc: preserve rowid allocator watermark (Avinash Sajjanshetty)
- build(deps): bump urllib3 from 2.6.3 to 2.7.0 (app/dependabot)
- core/printf: return NULL for empty format (oska)
- bindings/rust: Disable test_sync_parallel_writes_with_sync_ops test case (Pekka Enberg)
- core/schema: Preserve AUTOINCREMENT after DROP COLUMN (Nyasha Hama)
- core/mvcc: yield on big serialization of transaction (Pere Diaz Bou)
- Rollback abandoned MVCC commits on cleanup (Mikaël Francoeur)
Fixed
- Fix unsafe concurrent BTreeMap use in memory IO backends (Jussi Saurio)
- core/translate: report qualified column refs in ALTER TABLE trigger errors (roboturso)
- core/function: resolve jsonb_replace to its jsonb variant (LucasArray)
- core/json: fix UTF-8 corruption in JSON5 string serialization (Prathamesh Anvekar)
- github: Fix Windows release build and signing failures (Pekka Enberg)
- sync: fix race between concurrent opens of the same synced replica (Glauber Costa)
- fix file lock of WAL for multiprocess opens (Preston Thorpe)
- fix/sync: Replay pushed CREATE DDL with IF NOT EXISTS (Jussi Saurio)
- Fix various corruption issues (Jussi Saurio)
- simulator: fix dropping rows from improperly rolled back connection (Preston Thorpe)
- remove debug code (Pedro Muniz)
- core/function: resolve jsonb_patch in function name lookup (LucasArray)
- core: Fix uuid_str() and uuid_blob() on nullable columns (Preston Thorpe)
- Fix cdc mode empty txn (Nikita Sivukhin)
- bump fossier dependency to fix vouch command (Preston Thorpe)
- stress: handle integrity check error correctly (Mikaël Francoeur)
- Fix Antithesis targeted coverage output format to JSONL (Mikaël Francoeur)
- docs: Fix time extension types (Pekka Enberg)
- change error message for fallible allocations (Pedro Muniz)
- ci: fix codspeed runs being treated separately (Pedro Muniz)
- fix nonblocking read_page race and wal frame cache slot reuse corruption (Preston Thorpe)
- fix duplicate rowid allocation in cdc instructions v2 emission (Preston Thorpe)
- Fix WAL spill frame reuse during page spills (Pedro Muniz)
- fix(pragma): silently ignore unknown PRAGMA names (Chris Siddall)
- github: fix Windows codesign repack, use 7z instead of zip (Pekka Enberg)
- Fix .NET SQLite facade compatibility (Marc-André Moreau)
- core/translate: Fix NULL parent-key semantics in FK parent checks (Pavan Nambi)
- json: fix json_set panics on array append (Artur Kantorczyk)
- Fix README.md: invalid Go syntax and double .db file extension (n3on p0rtal)
- fix(schema): store bare trigger target table name on schema reload (Glauber Costa)
- core/mvcc: fix requires_seek on mvcc checkpoint insert (Pere Diaz Bou)
- core/translate: Fix partial index predicate consumption (Jussi Saurio)
- core/mvcc: properly complete checkpoint in case of error (Nikita Sivukhin)
- Resolve cargo artifact dir via scripts/cargo-target-dir (Pekka Enberg)
- fix test_normalize_ident: impl was changed, test was not (Jussi Saurio)
- fix correlated subquery inside aggregate with GROUP BY (Darko)
- core/translate: Fix ordinal ORDER BY and GROUP BY with COLLATE (Yassine Elyaakoub)
- fix: materialize DELETE rowset when FK cascade triggers back to target (Jussi Saurio)
- fix: spurious sqlite_stat1 NULL-idx rows emitted by ANALYZE (Jussi Saurio)
- fix: handle rowid-alias columns in composite FK key probes (Pavan Nambi)
- core/vdbe: Fix AVG() for text values with numeric prefixes (Hossam Khero)
- core/translate: nest FROM-clause subquery coroutine bodies to fix hash join bugs (Jussi Saurio)
- extensions/fuzzy: Fix index out of bounds panic in fuzzy string (Danawan Bimantoro)
- core/mvcc: fix deadlock on impl Display for Transaction (Pere Diaz Bou)
- fix: Invalid
changes()Count When CDC Is Enabled (Akira Noda) - serverless/javascript: Fix stack overflow error with large blobs (Henry)
- core/translate: Fix affinity of compound subquery result columns (Glauber Costa)
- fix: avoid CDC overwriting last insert rowid (Akira Noda)
- javascript: Fix Database.inTransaction property (Pekka Enberg)
- Fix recursive FK cascades causing stack overflow (Jussi Saurio)
- return error instead of panic on invalid type conversion (Nikita Sivukhin)
- propagate
IndexInfoallocation error (Pedro Muniz) - Propagate immutable record allocation errors (Pedro Muniz)
- Fix ignored updates and self-referential updates incorrectly mutating FK violation counters (Jussi Saurio)
- optimizer: fix two FULL OUTER JOIN planner bugs (Preston Thorpe)
- Fix for VACUUM INTO panic on nested statement yields (ISSUE #7237) (Benjamin Ebby)
- testing/simulator: fix drop index accounting in query profile (Pekka Enberg)
- Fix MVCC schema recovery for frame-level index ops (Jussi Saurio)
- Convert
BitSetand callers that use it to propagate fallible allocation errors (Pedro Muniz) - fix: align AUTOINCREMENT seq coercion with SQLite (Kumar Ujjawal)
- Fix DROP COLUMN expression index metadata (ReV)
- fix cargo fmt complaints (Avinash Sajjanshetty)
- core/mvcc: fix MVCC checkpoint duplicate index entries for interior index keys (Avinash Sajjanshetty)
Install turso_cli 0.7.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.7.0/turso_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.7.0/turso_cli-installer.ps1 | iex"Download turso_cli 0.7.0
| 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-aarch64-pc-windows-msvc.zip | ARM64 Windows | 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>