21 releases (7 breaking)

new 0.9.3+0.16.32 Mar 20, 2025
0.8.0+0.16.28 Feb 18, 2025
0.7.0+0.16.20 Dec 30, 2024
0.4.1+0.15.3 Jul 28, 2024
0.2.1+0.13.71 Jul 18, 2023

#360 in Procedural macros

Download history 1/week @ 2024-11-27 168/week @ 2024-12-04 79/week @ 2024-12-11 165/week @ 2024-12-18 337/week @ 2024-12-25 73/week @ 2025-01-01 140/week @ 2025-01-08 131/week @ 2025-01-15 107/week @ 2025-01-22 121/week @ 2025-01-29 158/week @ 2025-02-05 193/week @ 2025-02-12 75/week @ 2025-02-19 43/week @ 2025-02-26 20/week @ 2025-03-05 13/week @ 2025-03-12

247 downloads per month
Used in 2 crates (via tigerbeetle-unofficial-co…)

Apache-2.0

6MB
121K SLoC

Zig 96K 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 JavaScript 2K SLoC // 0.1% comments TypeScript 1.5K SLoC // 0.3% comments Rust 716 SLoC // 0.0% comments C 295 SLoC // 0.1% comments Shell 167 SLoC // 0.2% comments Batch 79 SLoC // 0.1% comments Lua 78 SLoC // 0.1% comments Visual Studio Solution 34 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.9.3+0.16.32"

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