This repository provides a compression codec API in Rust inspired by the numcodecs
Python API.
The repository is structured as follows:
crates
: Fundamental compression API cratesnumcodecs
: Rusty compression codec APInumcodecs-python
: Rust bindings to thenumcodecs
Python API, which allows Python codecs to be used in Rust and Rust codecs to be used in Pythonnumcodecs-wasm-guest
: Export a Rust codec as a WebAssembly component when compiling to WebAssemblynumcodecs-wasm-builder
: Compile a Rust codec into a WebAssembly component usingnumcodecs-wasm-guest
numcodecs-wasm-logging
: A codec wrapper that enables logging when compiled to WebAssembly
codecs
: Codec implementation crates, some new, some adapting existingnumcodecs
codecs with a more composable APIpy
: Python packages that expose the compression codecsnumcodecs-wasm
: Load a WebAssembly component into a Python class implementing thenumcodecs
Python APInumcodecs-wasm-template
: Template for a Python package that exports a WebAssembly component as a Python class implementing thenumcodecs
Python APInumcodecs-wasm-materialize
: Build Python packages for the codecs implemented in this repository by compiling them to WebAssembly components using thenumcodecs-wasm-builder
and creating packages using thenumcodecs-wasm-template
Licensed under the Mozilla Public License, Version 2.0 (LICENSE or https://www.mozilla.org/en-US/MPL/2.0/).
The numcodecs-rs
repository has been developed as part of ESiWACE3, the third phase of the Centre of Excellence in Simulation of Weather and Climate in Europe.
Funded by the European Union. This work has received funding from the European High Performance Computing Joint Undertaking (JU) under grant agreement No 101093054.