v0.4.4

tursodatabase/tursov0.4.4Jan 30, 2026by github-actions[bot]

AI Summary

A maintenance release focusing on WAL stability, character handling fixes, and preventing database corruption during checkpoint operations.

Key Highlights

  • Fix for WAL checkpoint crashes
  • Fix for Busy snapshot handling
  • CHAR() function Unicode support fix
  • Improvements to WAL auto-truncation and fsync behavior

New Features

  • Fix wal checkpoint
  • Busy snapshot bugfix
  • CHAR() function Unicode support
  • fsync DB file before truncating WAL after checkpoint
  • Checkpoint restart fix

Full Release Notes

## Release Notes

### Added

* Implement simple strategy to restart WAL log if possible (Nikita Sivukhin)
* core/mvcc: Add support for synchronous off mode (Pekka Enberg)

### Updated
* Remove unused lints, variables and functions (Pedro Muniz)
* WAL auto truncation: increase epoch to prevent stale pages reuse (Nikita Sivukhin)
* Refactor core/lib.rs Connection impl out to its own file (Preston Thorpe)
* Replace GPL-2.0 bloom crate with MIT-licensed fastbloom (Jussi Saurio)
* core: Use fast monotonic time when possible (Pekka Enberg)

### Fixed
* Fix wal checkpoint (Nikita Sivukhin)
* Busy snapshot bugfix (Nikita Sivukhin)
* fix(vdbe): CHAR() function should handle full Unicode range (Mikaël Francoeur)
* do not call unlock_after_restart in case of error during wal truncation - because we already released these locks earlier (Nikita Sivukhin)
* properly unlock WriteLock if restart failed and ignore Busy errors when attempt to restart WAL file failed (Nikita Sivukhin)
* Checkpoint restart fix (Nikita Sivukhin)
* core/vdbe/sorter: Propagate write errors instead of corrupting data (Preston Thorpe)
* fix/connect: read page1 in transaction to prevent illegal WAL read (Jussi Saurio)
* fix(parser): reject duplicate PRIMARY KEY clauses on a single column (Mikaël Francoeur)
* fix: fsync DB file before truncating WAL after checkpoint (Jussi Saurio)
* fix/vdbe: convert BusySnapshot to Busy if conn rolled back (Jussi Saurio)
* sdk-kit: Export busy snapshot error to callers (Pekka Enberg)

## Install turso_cli 0.4.4

### Install prebuilt binaries via shell script

```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-installer.sh | sh
```

### Install prebuilt binaries via powershell script

```sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-installer.ps1 | iex"
```

## Download turso_cli 0.4.4

|  File  | Platform | Checksum |
|--------|----------|----------|
| [turso_cli-aarch64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-aarch64-apple-darwin.tar.xz) | Apple Silicon macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-aarch64-apple-darwin.tar.xz.sha256) |
| [turso_cli-x86_64-apple-darwin.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-x86_64-apple-darwin.tar.xz) | Intel macOS | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-x86_64-apple-darwin.tar.xz.sha256) |
| [turso_cli-x86_64-pc-windows-msvc.zip](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-x86_64-pc-windows-msvc.zip.sha256) |
| [turso_cli-aarch64-unknown-linux-gnu.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-aarch64-unknown-linux-gnu.tar.xz) | ARM64 Linux | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-aarch64-unknown-linux-gnu.tar.xz.sha256) |
| [turso_cli-x86_64-unknown-linux-gnu.tar.xz](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-x86_64-unknown-linux-gnu.tar.xz) | x64 Linux | [checksum](https://github.com/tursodatabase/turso/releases/download/v0.4.4/turso_cli-x86_64-unknown-linux-gnu.tar.xz.sha256) |

## 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_verify):
```sh
gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso
```

You can also download the attestation from [GitHub](https://github.com/tursodatabase/turso/attestations) and verify against that directly:
```sh
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
```