Skip to content

Commit bf4ae26

Browse files
authored
Add QPET-SPERR codec (#33)
* Add QPET-SPERR codec * Fix JSON -> Python schema translation for null, true, and false * Update WASM build environment * Bump numcodecs-wasm to v0.2.2
1 parent bf2fd10 commit bf4ae26

File tree

21 files changed

+1462
-26
lines changed

21 files changed

+1462
-26
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ jobs:
9191
cargo hack check --all \
9292
--exclude numcodecs-python \
9393
--exclude numcodecs-jpeg2000 \
94+
--exclude numcodecs-qpet-sperr \
9495
--exclude numcodecs-sperr \
9596
--exclude numcodecs-sz3 \
9697
--exclude numcodecs-tthresh \
@@ -224,6 +225,7 @@ jobs:
224225
cargo hack clippy --all \
225226
--exclude numcodecs-python \
226227
--exclude numcodecs-jpeg2000 \
228+
--exclude numcodecs-qpet-sperr \
227229
--exclude numcodecs-sperr \
228230
--exclude numcodecs-sz3 \
229231
--exclude numcodecs-tthresh \
@@ -240,6 +242,7 @@ jobs:
240242
cargo hack clippy --all \
241243
--exclude numcodecs-python \
242244
--exclude numcodecs-jpeg2000 \
245+
--exclude numcodecs-qpet-sperr \
243246
--exclude numcodecs-sperr \
244247
--exclude numcodecs-sz3 \
245248
--exclude numcodecs-tthresh \

Cargo.toml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ members = [
2020
"codecs/linear-quantize",
2121
"codecs/log",
2222
"codecs/pco",
23+
"codecs/qpet-sperr",
2324
"codecs/random-projection",
2425
"codecs/reinterpret",
2526
"codecs/round",
@@ -45,14 +46,14 @@ rust-version = "1.87"
4546
[workspace.dependencies]
4647
# workspace-internal numcodecs crates
4748
numcodecs = { version = "0.3", path = "crates/numcodecs", default-features = false }
48-
numcodecs-python = { version = "0.7", path = "crates/numcodecs-python", default-features = false }
49+
numcodecs-python = { version = "0.7.1", path = "crates/numcodecs-python", default-features = false }
4950
numcodecs-wasm-builder = { version = "0.2", path = "crates/numcodecs-wasm-builder", default-features = false }
5051
numcodecs-wasm-guest = { version = "0.3", path = "crates/numcodecs-wasm-guest", default-features = false }
5152
numcodecs-wasm-host = { version = "0.2", path = "crates/numcodecs-wasm-host", default-features = false }
5253
numcodecs-wasm-host-reproducible = { version = "0.2.1", path = "crates/numcodecs-wasm-host-reproducible", default-features = false }
5354
numcodecs-wasm-logging = { version = "0.2", path = "crates/numcodecs-wasm-logging", default-features = false }
5455

55-
numcodecs-wasm = { version = "0.2.1", path = "py/numcodecs-wasm", default-features = false }
56+
numcodecs-wasm = { version = "0.2.2", path = "py/numcodecs-wasm", default-features = false }
5657

5758
# workspace-internal codecs crates
5859
numcodecs-asinh = { version = "0.4", path = "codecs/asinh", default-features = false }
@@ -64,6 +65,7 @@ numcodecs-jpeg2000 = { version = "0.3", path = "codecs/jpeg2000", default-featur
6465
numcodecs-linear-quantize = { version = "0.5", path = "codecs/linear-quantize", default-features = false }
6566
numcodecs-log = { version = "0.5", path = "codecs/log", default-features = false }
6667
numcodecs-pco = { version = "0.3", path = "codecs/pco", default-features = false }
68+
numcodecs-qpet-sperr = { version = "0.1", path = "codecs/qpet-sperr", default-features = false }
6769
numcodecs-random-projection = { version = "0.4", path = "codecs/random-projection", default-features = false }
6870
numcodecs-reinterpret = { version = "0.4", path = "codecs/reinterpret", default-features = false }
6971
numcodecs-round = { version = "0.5", path = "codecs/round", default-features = false }
@@ -87,7 +89,6 @@ format_serde_error = { version = "0.3", default-features = false }
8789
indexmap = { version = "2.10", default-features = false }
8890
itertools = { version = "0.14", default-features = false }
8991
log = { version = "0.4.27", default-features = false }
90-
simple_logger = { version = "5.0", default-features = false }
9192
miniz_oxide = { version = "0.8.5", default-features = false }
9293
ndarray = { version = "0.16.1", default-features = false } # keep in sync with numpy
9394
ndarray-rand = { version = "0.15", default-features = false }
@@ -102,6 +103,7 @@ pyo3 = { version = "0.26", default-features = false }
102103
pyo3-error = { version = "0.6", default-features = false }
103104
pyo3-log = { version = "0.13.0", default-features = false }
104105
pythonize = { version = "0.26", default-features = false }
106+
qpet-sperr = { version = "0.1", default-features = false }
105107
rand = { version = "0.9.1", default-features = false }
106108
schemars = { version = "1.0.3", default-features = false }
107109
scratch = { version = "1.0", default-features = false }
@@ -110,6 +112,7 @@ serde = { version = "1.0.218", default-features = false }
110112
serde-transcode = { version = "1.1", default-features = false }
111113
serde_json = { version = "1.0.140", default-features = false }
112114
serde_repr = { version = "0.1.3", default-features = false }
115+
simple_logger = { version = "5.0", default-features = false }
113116
sperr = { version = "0.2", default-features = false }
114117
sz3 = { version = "0.3", default-features = false }
115118
thiserror = { version = "2.0.12", default-features = false }

codecs/qpet-sperr/Cargo.toml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[package]
2+
name = "numcodecs-qpet-sperr"
3+
version = "0.1.0"
4+
edition = { workspace = true }
5+
authors = { workspace = true }
6+
repository = { workspace = true }
7+
license = { workspace = true }
8+
rust-version = { workspace = true }
9+
10+
description = "QPET-SPERR codec implementation for the numcodecs API"
11+
readme = "README.md"
12+
categories = ["compression", "encoding"]
13+
keywords = ["QPET-SPERR", "numcodecs", "compression", "encoding"]
14+
15+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
16+
17+
[dependencies]
18+
ndarray = { workspace = true, features = ["std"] }
19+
numcodecs = { workspace = true }
20+
num-traits = { workspace = true, features = ["std"] }
21+
postcard = { workspace = true }
22+
qpet-sperr = { workspace = true }
23+
schemars = { workspace = true, features = ["derive", "preserve_order"] }
24+
serde = { workspace = true, features = ["std", "derive"] }
25+
thiserror = { workspace = true }
26+
# Explicitly enable the `no_wasm_shim` feature for qpet-sperr-sys/zstd-sys
27+
zstd-sys = { workspace = true, features = ["no_wasm_shim"] }
28+
29+
[dev-dependencies]
30+
serde_json = { workspace = true, features = ["std"] }
31+
32+
[lints]
33+
workspace = true

0 commit comments

Comments
 (0)