Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
60964d0
Start work on a libpressio codec wrapper
juntyr Apr 24, 2025
d8db7fa
Try with some libpressio fixes
juntyr Apr 25, 2025
027d78d
Skip numcodecs-pressio in non-builder WASM CI
juntyr Apr 25, 2025
c3803b3
Update libpressio rev
juntyr Apr 25, 2025
f4f12f0
Fix clippy lints
juntyr Apr 25, 2025
878f351
Some WASM hacks
juntyr Feb 12, 2026
96bf7f8
Clean up libpressio dependencies
juntyr Feb 12, 2026
be6b2f7
Some experimentation to produce more link errors
juntyr Feb 12, 2026
20f7605
Upgrade to upstream std_compat
juntyr Feb 12, 2026
64fe90b
Only link libstdc++ in libpressio on Linux target
juntyr Feb 12, 2026
e573721
Fix target_os check in libpressio build.rs
juntyr Feb 12, 2026
7b04c21
no really really don't ask
juntyr Feb 17, 2026
67bec0c
add some option parsing and inspection support
juntyr Feb 17, 2026
11d0dd0
some more plugins
juntyr Feb 18, 2026
760913d
enable more plugins
juntyr Feb 18, 2026
2da115c
Simple encode/decode implementation
juntyr Feb 21, 2026
48cbe5a
add host libcxx to the nix flake
juntyr Feb 23, 2026
ccdc4d6
fix cmake env lookup
juntyr Feb 23, 2026
33510b6
Fix clippy lint
juntyr Feb 23, 2026
2b19ecc
Pressio and PressioCompressor are Send + !Sync
juntyr Mar 1, 2026
144d349
derive host sysroot in builder from clang include paths
juntyr Mar 2, 2026
915a8ac
debug clang include path on Linux
juntyr Mar 2, 2026
6d622b0
more flexible sysroot finding
juntyr Mar 2, 2026
eaedb62
why not?
juntyr Mar 2, 2026
1c7e054
try again
juntyr Mar 2, 2026
c4be1f5
separate error for en/de-code to array without data
juntyr Mar 2, 2026
4cf08ae
Enable more plugins
juntyr Mar 9, 2026
3061b57
port pressio_register_generator to CMake
juntyr Mar 10, 2026
c6472c0
Fix git rev
juntyr Mar 10, 2026
dbb9407
add LIBPRESSIO_WITH_EXTERNAL option
juntyr Mar 10, 2026
f8b3493
Start bringing codec config closer to existing libpressio numcodecs i…
juntyr Mar 11, 2026
683eec9
Fix clippy lint
juntyr Mar 11, 2026
bad2acd
Progress with serialising the compressor config
juntyr Mar 12, 2026
75a7c58
small code updates
juntyr Mar 13, 2026
825849d
fix some config bugs
juntyr Mar 13, 2026
feb2d85
include metric results in config and add help when deserialising opti…
juntyr Mar 14, 2026
0c60580
support inline data nd arrays in the config
juntyr Mar 14, 2026
f354e63
add linear quantizer test
juntyr Mar 15, 2026
0e6bd7a
fix pressio metrics results
juntyr Mar 15, 2026
c710d11
add support for the libpressio bzip2 compressor
juntyr Mar 16, 2026
560ff85
Try out Lua support for libpressio
juntyr Mar 17, 2026
d8944df
update libpressio-rs
juntyr Mar 22, 2026
ff442bd
allow using non-sendable pressio compressors using fragile
juntyr Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ jobs:
--exclude numcodecs-ebcc \
--exclude numcodecs-jpeg2000 \
--exclude numcodecs-lc \
--exclude numcodecs-pressio \
--exclude numcodecs-qpet-sperr \
--exclude numcodecs-sperr \
--exclude numcodecs-sz3 \
Expand Down Expand Up @@ -229,6 +230,7 @@ jobs:
--exclude numcodecs-ebcc \
--exclude numcodecs-jpeg2000 \
--exclude numcodecs-lc \
--exclude numcodecs-pressio \
--exclude numcodecs-qpet-sperr \
--exclude numcodecs-sperr \
--exclude numcodecs-sz3 \
Expand All @@ -248,6 +250,7 @@ jobs:
--exclude numcodecs-ebcc \
--exclude numcodecs-jpeg2000 \
--exclude numcodecs-lc \
--exclude numcodecs-pressio \
--exclude numcodecs-qpet-sperr \
--exclude numcodecs-sperr \
--exclude numcodecs-sz3 \
Expand Down
5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ members = [
"codecs/linear-quantize",
"codecs/log",
"codecs/pco",
"codecs/pressio",
"codecs/qpet-sperr",
"codecs/random-projection",
"codecs/reinterpret",
Expand Down Expand Up @@ -69,6 +70,7 @@ numcodecs-lc = { version = "0.1", path = "codecs/lc", default-features = false }
numcodecs-linear-quantize = { version = "0.5", path = "codecs/linear-quantize", default-features = false }
numcodecs-log = { version = "0.5", path = "codecs/log", default-features = false }
numcodecs-pco = { version = "0.3", path = "codecs/pco", default-features = false }
numcodecs-pressio = { version = "0.1", path = "codecs/pressio", default-features = false }
numcodecs-qpet-sperr = { version = "0.2.2", path = "codecs/qpet-sperr", default-features = false }
numcodecs-random-projection = { version = "0.4", path = "codecs/random-projection", default-features = false }
numcodecs-reinterpret = { version = "0.4", path = "codecs/reinterpret", default-features = false }
Expand All @@ -91,9 +93,11 @@ clap = { version = "4.5", default-features = false }
convert_case = { version = "0.8", default-features = false }
ebcc = { version = "0.1", default-features = false }
format_serde_error = { version = "0.3", default-features = false }
fragile = { version = "2.0", default-features = false }
indexmap = { version = "2.10", default-features = false }
itertools = { version = "0.14", default-features = false }
lc-framework = { version = "0.1", default-features = false }
libpressio = { version = "0.1", git = "https://github.com/juntyr/libpressio-rs.git", rev = "30545dd", default-features = false }
log = { version = "0.4.27", default-features = false }
miniz_oxide = { version = "0.8.5", default-features = false }
ndarray = { version = "0.16.1", default-features = false } # keep in sync with numpy
Expand All @@ -115,6 +119,7 @@ schemars = { version = "1.0.3", default-features = false }
scratch = { version = "1.0", default-features = false }
semver = { version = "1.0.23", default-features = false }
serde = { version = "1.0.218", default-features = false }
serde-ndim = { version = "=2.1.0", default-features = false }
serde-transcode = { version = "1.1", default-features = false }
serde_json = { version = "1.0.140", default-features = false }
serde_repr = { version = "0.1.5", default-features = false }
Expand Down
32 changes: 32 additions & 0 deletions codecs/pressio/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[package]
name = "numcodecs-pressio"
version = "0.1.0"
edition = { workspace = true }
authors = { workspace = true }
repository = { workspace = true }
license = { workspace = true }
rust-version = { workspace = true }

description = "libpressio codec wrapper for the numcodecs API"
readme = "README.md"
categories = ["compression", "encoding"]
keywords = ["libpressio", "numcodecs", "compression", "encoding"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
fragile = { workspace = true }
libpressio = { workspace = true, features = ["bzip2", "lua"] }
ndarray = { workspace = true }
numcodecs = { workspace = true }
schemars = { workspace = true, features = ["derive", "preserve_order"] }
serde = { workspace = true, features = ["std", "derive"] }
serde-ndim = { workspace = true, features = ["ndarray"] }
thiserror = { workspace = true }

[dev-dependencies]
ndarray = { workspace = true, features = ["std"] }
serde_json = { workspace = true, features = ["std"] }

[lints]
workspace = true
1 change: 1 addition & 0 deletions codecs/pressio/LICENSE
38 changes: 38 additions & 0 deletions codecs/pressio/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[![CI Status]][workflow] [![MSRV]][repo] [![Latest Version]][crates.io] [![PyPi Release]][pypi] [![Rust Doc Crate]][docs.rs] [![Rust Doc Main]][docs] [![Read the Docs]][rtdocs]

[CI Status]: https://img.shields.io/github/actions/workflow/status/juntyr/numcodecs-rs/ci.yml?branch=main
[workflow]: https://github.com/juntyr/numcodecs-rs/actions/workflows/ci.yml?query=branch%3Amain

[MSRV]: https://img.shields.io/badge/MSRV-1.85.0-blue
[repo]: https://github.com/juntyr/numcodecs-rs

[Latest Version]: https://img.shields.io/crates/v/numcodecs-pressio
[crates.io]: https://crates.io/crates/numcodecs-pressio

[PyPi Release]: https://img.shields.io/pypi/v/numcodecs-wasm-pressio.svg
[pypi]: https://pypi.python.org/pypi/numcodecs-wasm-pressio

[Rust Doc Crate]: https://img.shields.io/docsrs/numcodecs-pressio
[docs.rs]: https://docs.rs/numcodecs-pressio/

[Rust Doc Main]: https://img.shields.io/badge/docs-main-blue
[docs]: https://juntyr.github.io/numcodecs-rs/numcodecs_pressio

[Read the Docs]: https://img.shields.io/readthedocs/numcodecs-wasm?label=readthedocs
[rtdocs]: https://numcodecs-wasm.readthedocs.io/en/stable/api/numcodecs_wasm_pressio/

# numcodecs-pressio

libpressio codec wrapper for the [`numcodecs`] API.

[`numcodecs`]: https://docs.rs/numcodecs/0.2/numcodecs/

## License

Licensed under the Mozilla Public License, Version 2.0 ([LICENSE](LICENSE) or https://www.mozilla.org/en-US/MPL/2.0/).

## Funding

The `numcodecs-pressio` crate has been developed as part of [ESiWACE3](https://www.esiwace.eu), 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.
Loading
Loading