26 releases (9 breaking)

new 0.11.2+0.16.36 Apr 15, 2025
0.10.1+0.16.34 Apr 1, 2025
0.10.0+0.16.33 Mar 25, 2025
0.7.0+0.16.20 Dec 30, 2024
0.2.1+0.13.71 Jul 18, 2023

#889 in Asynchronous

Download history 246/week @ 2024-12-24 45/week @ 2024-12-31 21/week @ 2025-01-07 122/week @ 2025-01-14 111/week @ 2025-01-21 114/week @ 2025-01-28 146/week @ 2025-02-04 152/week @ 2025-02-11 165/week @ 2025-02-18 28/week @ 2025-02-25 35/week @ 2025-03-04 14/week @ 2025-03-11 497/week @ 2025-03-18 148/week @ 2025-03-25 174/week @ 2025-04-01 157/week @ 2025-04-08

978 downloads per month
Used in tigerbeetle-unofficial

Apache-2.0

6.5MB
127K SLoC

Zig 100K SLoC // 0.1% comments Java 9K SLoC // 0.2% comments C# 4.5K SLoC // 0.1% comments Go 3.5K SLoC // 0.1% comments Python 3K SLoC // 0.1% comments Rust 2.5K SLoC // 0.0% comments JavaScript 2K SLoC // 0.1% comments TypeScript 2K SLoC // 0.3% comments C 294 SLoC // 0.1% comments Shell 172 SLoC // 0.2% comments Batch 78 SLoC // 0.1% comments Lua 77 SLoC // 0.0% comments Visual Studio Solution 33 SLoC PowerShell 3 SLoC

tigerbeetle-unofficial

crates.io Rust 1.78+
CI Rust docs

Changelog

Unofficial TigerBeetle bindings for Rust.

WARNING: In TigerBeetle a client is not backward compatible with a cluster. You cannot run a newer client against an older cluster: clients are only forward compatible with replicas from their own version or newer (see the "Oldest supported client version" for the supported versions range).
To avoid accidental use of a newer TigerBeetle client with an older cluster, it's highly recommended to pin the exact version if this crate in your [dependencies] and only change it with the cluster upgrade along:

[dependencies]
tigerbeetle-unofficial = "=0.11.1+0.16.36"

Status

Because this TigerBeetle client library implementation is not a part of the official tigerbeetle repos, it is hard to ensure and keep some of Rust safety guarantees from the outside. For that reason I invite people to contribute to this repo or finally develop the official Rust client library.

Repo Overview

The repository hosts the following libraries:

  • Crates.io docs.rs - Safe high-level async bindings. Implemented with #![forbid(unsafe_code)] upon tigerbeetle-unofficial-core.
  • Crates.io docs.rs - Safe low-level callback-based async bindings.
  • Crates.io docs.rs - Unsafe native bindings.

License

TigerBeetle is licensed under Apache License, Version 2.0.

tigerbeetle-unofficial crates are licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Dependencies

~0.6–8.5MB
~79K SLoC