0.17.9
tashfeenahmed/freellmapi0.17.9Jul 6, 2026by github-actions[bot]
AI Summary
This release focuses on safety and performance improvements for TigerBeetle, including the reversion of unique keys to fix compatibility issues and the introduction of online schema validation. It also includes updates to client libraries across multiple languages and adds an experimental CLI feature for memory management.
Key Highlights
- Reverted unique keys to resolve compatibility issues caused in a previous release.
- Introduced online schema validation to ensure coherent `key_min`/`key_max` when reading data.
- Applied micro-optimizations to the radix sort algorithm to avoid copies with large stack-allocated values.
- Added an experimental `--memory` flag to the CLI for automatic grid and object cache sizing.
- Enhanced Ruby and Rust client libraries with improved bounds checking and overflow checks.
New Features
- Extended `inspect constants` to catch schema changes and print the `Checkpoint Schedule`.
- Implemented online schema validation.
- Added experimental CLI `--memory` flag.
- Added u128 bounds check in the Ruby client.
- Improved the Rust client by removing the bitflags dependency and enabling overflow checks.
Full Release Notes
# 0.17.9 ### Supported upgrade versions Oldest supported client version: 0.16.4 Oldest upgradable replica version: 0.17.5 ## Server * Binary: Download the zip for your OS and architecture from this page and unzip. * Docker: `docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.9` * Docker (debug image): `docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.9-debug` ## Clients **NOTE**: Because of package manager caching, it may take a few minutes after the release for this version to appear in the package manager. You cannot run a newer client against an older cluster: clients are only compatible with replicas from their own release *or newer*, subject to the newer release's `Oldest supported client version`. * .NET: `dotnet add package tigerbeetle --version 0.17.9` * Go: `go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.17.9` * Java: Update the version of `com.tigerbeetle.tigerbeetle-java` in `pom.xml` to `0.17.9`. * Node.js: `npm install --save-exact tigerbeetle-node@0.17.9` * Python: `pip install tigerbeetle==0.17.9` ## Changelog ### Safety And Performance - [#3810](https://github.com/tigerbeetle/tigerbeetle/pull/3810) Revert unique keys, which caused compatibility issues (see [#3802](https://github.com/tigerbeetle/tigerbeetle/pull/3802)). - [#3822](https://github.com/tigerbeetle/tigerbeetle/pull/3822), [#3844](https://github.com/tigerbeetle/tigerbeetle/pull/3844) Extend `inspect constants` to catch schema changes and prints the `Checkpoint Schedule` section. - [#3845](https://github.com/tigerbeetle/tigerbeetle/pull/3845) Micro-optimization to the radix sort algorithm to avoid copies when dealing with large stack-allocated values. - [#3840](https://github.com/tigerbeetle/tigerbeetle/pull/3840) Online schema validation, ensuring coherent `key_min`/`key_max` when reading data. ### Features - [#3816](https://github.com/tigerbeetle/tigerbeetle/pull/3816) Improve the Ruby client migration guide. - [#3836](https://github.com/tigerbeetle/tigerbeetle/pull/3836), [#3832](https://github.com/tigerbeetle/tigerbeetle/pull/3832), [#3835](https://github.com/tigerbeetle/tigerbeetle/pull/3835), [#3834](https://github.com/tigerbeetle/tigerbeetle/pull/3834) Various docs improvements, including adding the Ruby client and print layout support. - [#3830](https://github.com/tigerbeetle/tigerbeetle/pull/3830), [#3811](https://github.com/tigerbeetle/tigerbeetle/pull/3811) Add a u128 bounds check in the Ruby client and make its status return type more idiomatic. - [#3827](https://github.com/tigerbeetle/tigerbeetle/pull/3827) Improve the Rust client, removing the bitflags dependency and enabling overflow checks. - [#3852](https://github.com/tigerbeetle/tigerbeetle/pull/3852) Experimental CLI `--memory` flag that automatically sizes the grid and object caches to use all assigned memory. ### Internals - [#3825](https://github.com/tigerbeetle/tigerbeetle/pull/3825), [#3831](https://github.com/tigerbeetle/tigerbeetle/pull/3831) Improve various code comments. - [#3793](https://github.com/tigerbeetle/tigerbeetle/pull/3793) Switch to `stdx.SocketAddress`. - [#3826](https://github.com/tigerbeetle/tigerbeetle/pull/3826) Fail on curl instead of unzip for network flakes during Vortex builds. - [#3813](https://github.com/tigerbeetle/tigerbeetle/pull/3813) Expose `TimeSim` and fixtures in VSR. - [#3820](https://github.com/tigerbeetle/tigerbeetle/pull/3820) Introduce the canonical workload principle for benchmarks. - [#3682](https://github.com/tigerbeetle/tigerbeetle/pull/3682) Make publishing TigerBeetle client artifacts idempotent. - [#3817](https://github.com/tigerbeetle/tigerbeetle/pull/3817) Workaround MacOS builds on Zig 0.14.1 (see [issue](ttps://codeberg.org/ziglang/zig/issues/31658)). ### TigerTracks 🎧 - [Home](https://www.youtube.com/watch?v=5Fc9A6mLHJU) <img width="1712" height="1152" alt="image" src="https://github.com/user-attachments/assets/0e04023d-3860-4138-a3f0-8f7598c2ef0c" />