zarrs_ffi
C/C++ bindings for the zarrs rust crate
|
C/C++ bindings for the zarrs crate, a Rust library for the Zarr storage format for multidimensional arrays and metadata.
zarrs_ffi
is a single header library: zarrs.h
(docs).
Currently zarrs_ffi
only supports a small subset of the zarrs API.
A changelog can be found here.
See a more comprehensive example in the examples directory.
CMAKE_MODULE_PATH
find_package(zarrs <version> REQUIRED COMPONENTS zarrs/bz2)
<version>
with the latest release: (e.g., 0.8
or 0.8.4
)GitHub
using FetchContent and built using corrosionzarrs_ffi
library is available as the zarrs::zarrs
or zarrs::zarrs-static
targetA complete CMake
example can be found in examples/cmake_project.
Building generates a header, and a platform-dependent static and dynamic library.
zarrs.h
is only re-generated if the cbindgen
feature is enabled.
Encoding and decoding performance may be improved with avx2
/sse2
enabled (if supported). Compile with either of:
RUSTFLAGS="-C target-cpu=native"
RUSTFLAGS="-C target-feature=+avx2,+sse2"
Non-default zarrs
codecs (see zarrs
crate features) can be enabled with the all_codecs
feature. Alternatively, individual codecs can be enabled by passing them as feature flags. For example:
zarrs_ffi
is licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.