#zstd #safe-bindings #zstandard #api-bindings #read-write

no-std zstd-safe

Safe low-level bindings for the zstd compression library

48 stable releases (6 major)

7.1.0 Mar 27, 2024
7.0.0 Oct 11, 2023
6.0.6 Jul 19, 2023
6.0.4+zstd.1.5.4 Feb 10, 2023
1.3.1 Jul 5, 2017

#115 in Compression

Download history 774119/week @ 2024-01-03 804679/week @ 2024-01-10 844421/week @ 2024-01-17 820684/week @ 2024-01-24 827723/week @ 2024-01-31 833959/week @ 2024-02-07 849835/week @ 2024-02-14 905729/week @ 2024-02-21 956753/week @ 2024-02-28 931996/week @ 2024-03-06 924924/week @ 2024-03-13 937540/week @ 2024-03-20 940309/week @ 2024-03-27 1013680/week @ 2024-04-03 997490/week @ 2024-04-10 814901/week @ 2024-04-17

3,939,013 downloads per month
Used in 2,543 crates (21 directly)

MIT/Apache

2.5MB
45K SLoC

C 39K SLoC // 0.2% comments Rust 6K SLoC // 0.1% comments GNU Style Assembly 374 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