#safe-bindings #zstd #zstandard #api-bindings

no-std zstd-safe

Safe low-level bindings for the zstd compression library

50 stable releases (6 major)

7.2.1 Aug 2, 2024
7.2.0 Jul 5, 2024
7.1.0 Mar 27, 2024
7.0.0 Oct 11, 2023
1.3.1 Jul 5, 2017

#113 in Compression

Download history 1208467/week @ 2024-08-16 1291074/week @ 2024-08-23 1201323/week @ 2024-08-30 1252223/week @ 2024-09-06 1143156/week @ 2024-09-13 1248008/week @ 2024-09-20 1209850/week @ 2024-09-27 1279494/week @ 2024-10-04 1249432/week @ 2024-10-11 1288049/week @ 2024-10-18 1287651/week @ 2024-10-25 1202562/week @ 2024-11-01 1268277/week @ 2024-11-08 1346897/week @ 2024-11-15 1114512/week @ 2024-11-22 997014/week @ 2024-11-29

4,959,672 downloads per month
Used in 3,471 crates (23 directly)

MIT/Apache

2.5MB
45K SLoC

C 39K SLoC // 0.2% comments Rust 6K SLoC // 0.1% comments GNU Style Assembly 372 SLoC // 0.2% comments

zstd-safe

This is a thin, no-std, safe abstraction built on top of the bindings from [zstd-sys].

It is close to a 1-for-1 mapping to the C functions, but uses rust types like slices instead of pointers and lengths.

For a more comfortable higher-level library (with Read/Write implementations), see zstd-rs.


lib.rs:

Minimal safe wrapper around zstd-sys.

This crates provides a minimal translation of the zstd-sys methods. For a more comfortable high-level library, see the zstd crate.

Most of the functions here map 1-for-1 to a function from the C zstd library mentioned in their descriptions. Check the source documentation for more information on their behaviour.

Features denoted as experimental in the C library are hidden behind an experimental feature.

Dependencies