Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
2167b78
Start work on a libpressio codec wrapper
juntyr Apr 24, 2025
ce13ba6
Try with some libpressio fixes
juntyr Apr 25, 2025
b2f1667
Skip numcodecs-pressio in non-builder WASM CI
juntyr Apr 25, 2025
f250c1d
Update libpressio rev
juntyr Apr 25, 2025
179acfd
Fix clippy lints
juntyr Apr 25, 2025
fe7168c
Some WASM hacks
juntyr Feb 12, 2026
bba64e4
Clean up libpressio dependencies
juntyr Feb 12, 2026
9c8d129
Some experimentation to produce more link errors
juntyr Feb 12, 2026
364f9cf
Upgrade to upstream std_compat
juntyr Feb 12, 2026
ab750eb
Only link libstdc++ in libpressio on Linux target
juntyr Feb 12, 2026
789fdba
Fix target_os check in libpressio build.rs
juntyr Feb 12, 2026
9866cee
no really really don't ask
juntyr Feb 17, 2026
9d89e52
add some option parsing and inspection support
juntyr Feb 17, 2026
d734f27
some more plugins
juntyr Feb 18, 2026
8ca81a5
enable more plugins
juntyr Feb 18, 2026
1912be6
Simple encode/decode implementation
juntyr Feb 21, 2026
0e11063
add host libcxx to the nix flake
juntyr Feb 23, 2026
53ca2a8
fix cmake env lookup
juntyr Feb 23, 2026
c624e6a
Fix clippy lint
juntyr Feb 23, 2026
bcf600a
Pressio and PressioCompressor are Send + !Sync
juntyr Mar 1, 2026
0639c4e
derive host sysroot in builder from clang include paths
juntyr Mar 2, 2026
74fe2e2
debug clang include path on Linux
juntyr Mar 2, 2026
78da45f
more flexible sysroot finding
juntyr Mar 2, 2026
42c4a70
why not?
juntyr Mar 2, 2026
5453840
try again
juntyr Mar 2, 2026
f31c699
separate error for en/de-code to array without data
juntyr Mar 2, 2026
02d5be5
Enable more plugins
juntyr Mar 9, 2026
49e3f81
port pressio_register_generator to CMake
juntyr Mar 10, 2026
f362d15
Fix git rev
juntyr Mar 10, 2026
27b6700
add LIBPRESSIO_WITH_EXTERNAL option
juntyr Mar 10, 2026
1829212
Start bringing codec config closer to existing libpressio numcodecs i…
juntyr Mar 11, 2026
ef41a7b
Fix clippy lint
juntyr Mar 11, 2026
6fbd2b0
Progress with serialising the compressor config
juntyr Mar 12, 2026
67d9f60
small code updates
juntyr Mar 13, 2026
af554ca
fix some config bugs
juntyr Mar 13, 2026
a378bce
include metric results in config and add help when deserialising opti…
juntyr Mar 14, 2026
a32b82b
support inline data nd arrays in the config
juntyr Mar 14, 2026
7b6ee10
add linear quantizer test
juntyr Mar 15, 2026
a6b6b18
fix pressio metrics results
juntyr Mar 15, 2026
f112a1e
add support for the libpressio bzip2 compressor
juntyr Mar 16, 2026
eb4826a
Try out Lua support for libpressio
juntyr Mar 17, 2026
654ab13
update libpressio-rs
juntyr Mar 22, 2026
3e8756a
allow using non-sendable pressio compressors using fragile
juntyr Mar 26, 2026
adc5f23
Update libpressio-rs
juntyr Apr 22, 2026
b23d52f
Bump MSRV to 1.88
juntyr Apr 22, 2026
f79eaab
Try removing bytemuck version pin
juntyr Apr 22, 2026
9a2aed0
Try to remove wasm-bindgen pin
juntyr Apr 22, 2026
81a7204
Fix clippy
juntyr Apr 22, 2026
4887d28
add serde(deny_unknown_fields) for pressio config
juntyr Apr 22, 2026
323ca5a
Fix clippy
juntyr Apr 22, 2026
40762d7
Improve codec schema inlining
juntyr Apr 23, 2026
ed4ad44
Remove extraneous schemars dependency in numcodecs-wasm-guest
juntyr Apr 23, 2026
5738803
add failing config test
juntyr Apr 30, 2026
9b1fbbe
Fix pressio bool data array
juntyr Apr 30, 2026
b0a699c
Prepare manual v0.1.0-beta.1 release
juntyr Apr 30, 2026
402edd4
update MSRV in READMEs
juntyr Jul 3, 2026
c000e6f
Add numcodecs-wasm-pressio metadata
juntyr Jul 3, 2026
708227b
start drafting libpressio codec trampoline
juntyr Jul 3, 2026
318cce8
disable OptZConfig support for now, fix dlib for wasm later
juntyr Jul 3, 2026
e7f14a1
Implement trampoline serialise, deserialise, and set_options, get_opt…
juntyr Jul 4, 2026
c707775
draft implement get_options
juntyr Jul 4, 2026
5529bad
fix numcodecs.rs codec validation, should support propagating error m…
juntyr Jul 4, 2026
804baca
trampoline improvements
juntyr Jul 4, 2026
d741b94
re-enable optzconfig for wasm
juntyr Jul 5, 2026
f9cca13
fix libpressio-opt dlib linking
juntyr Jul 5, 2026
173c7a0
fix dlib infinite recursion
juntyr Jul 5, 2026
64d792d
add optzconfig tests
juntyr Jul 5, 2026
9ae2110
include <atomic> in dlib
juntyr Jul 5, 2026
259eab7
implement numcodecs codec as metric trampoline
juntyr Jul 6, 2026
2a99725
fixes from experimentation
juntyr Jul 6, 2026
9cd4ebb
Clean up
juntyr Jul 8, 2026
eef646a
Bump numcodecs-pressio to v0.1.0-beta.2
juntyr Jul 8, 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
7 changes: 5 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
rust: ["1.87", stable, nightly]
rust: ["1.88", stable, nightly]
lock: ["Cargo.lock", "Cargo.lock.min"]
runs-on: ${{ matrix.os }}
needs: lock
Expand Down 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 @@ -217,7 +218,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
rust: ["1.87", stable]
rust: ["1.88", stable]
lock: ["Cargo.lock", "Cargo.lock.min"]
runs-on: ${{ matrix.os }}
needs: lock
Expand Down Expand Up @@ -269,6 +270,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 @@ -288,6 +290,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
11 changes: 8 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ members = [
"codecs/log",
"codecs/onion",
"codecs/pco",
"codecs/pressio",
"codecs/qpet-sperr",
"codecs/random-projection",
"codecs/reinterpret",
Expand All @@ -45,15 +46,15 @@ edition = "2024"
authors = ["Juniper Tyree <juniper.tyree@helsinki.fi>"]
repository = "https://github.com/juntyr/numcodecs-rs"
license = "MPL-2.0"
rust-version = "1.87"
rust-version = "1.88"

[workspace.dependencies]
# workspace-internal numcodecs crates
numcodecs = { version = "0.3.2", path = "crates/numcodecs", default-features = false }
numcodecs = { version = "0.3.3", path = "crates/numcodecs", default-features = false }
numcodecs-python = { version = "0.7.1", path = "crates/numcodecs-python", default-features = false }
numcodecs-registry = { version = "0.1", path = "crates/numcodecs-registry", default-features = false }
numcodecs-wasm-builder = { version = "0.2", path = "crates/numcodecs-wasm-builder", default-features = false }
numcodecs-wasm-guest = { version = "0.3.1", path = "crates/numcodecs-wasm-guest", default-features = false }
numcodecs-wasm-guest = { version = "0.3.2", path = "crates/numcodecs-wasm-guest", default-features = false }
numcodecs-wasm-host = { version = "0.2.1", path = "crates/numcodecs-wasm-host", default-features = false }
numcodecs-wasm-host-reproducible = { version = "0.2.3", path = "crates/numcodecs-wasm-host-reproducible", default-features = false }
numcodecs-wasm-logging = { version = "0.2", path = "crates/numcodecs-wasm-logging", default-features = false }
Expand All @@ -73,6 +74,7 @@ numcodecs-linear-quantize = { version = "0.5", path = "codecs/linear-quantize",
numcodecs-log = { version = "0.5", path = "codecs/log", default-features = false }
numcodecs-onion = { version = "0.1", path = "codecs/onion", default-features = false }
numcodecs-pco = { version = "0.4", 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 @@ -96,9 +98,11 @@ convert_case = { version = "0.8", default-features = false }
ebcc = { version = "0.3.1-alpha", default-features = false }
erased-serde = { version = "0.4", 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 = "44521c4", 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 @@ -120,6 +124,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.1", git = "https://github.com/juntyr/serde-ndim.git", rev = "060c889", 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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[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.87.0-blue
[MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
[repo]: https://github.com/juntyr/numcodecs-rs

[Latest Version]: https://img.shields.io/crates/v/numcodecs
Expand Down
2 changes: 1 addition & 1 deletion codecs/asinh/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[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.87.0-blue
[MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
[repo]: https://github.com/juntyr/numcodecs-rs

[Latest Version]: https://img.shields.io/crates/v/numcodecs-asinh
Expand Down
2 changes: 1 addition & 1 deletion codecs/asinh/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! [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.87.0-blue
//! [MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
//! [repo]: https://github.com/juntyr/numcodecs-rs
//!
//! [Latest Version]: https://img.shields.io/crates/v/numcodecs-asinh
Expand Down
23 changes: 23 additions & 0 deletions codecs/asinh/tests/schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"type": "object",
"additionalProperties": false,
"properties": {
"linear_width": {
"type": "number",
"format": "double",
"description": "The width of the close-to-zero input value range where the transform is\nnearly linear"
},
"_version": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
"description": "The codec's encoding format version. Do not provide this parameter explicitly.",
"default": "1.0.0"
}
},
"required": [
"linear_width"
],
"description": "Asinh codec, which applies a quasi-logarithmic transformation on encoding.\n\nFor values close to zero that are within the codec's `linear_width`, the\ntransform is close to linear. For values of larger magnitudes, the\ntransform is asymptotically logarithmic. Unlike a logarithmic transform,\nthis codec supports all finite values, including negative values and zero.\n\nIn detail, the codec calculates\n`$c = w \\cdot \\text{asinh}\\left( \\frac{x}{w} \\right)$`\non encoding and\n`$d = w \\cdot \\text{sinh}\\left( \\frac{c}{w} \\right)$`\non decoding, where `$w$` is the codec's `linear_width`.\n\nThe codec only supports finite floating point numbers.",
"title": "AsinhCodec",
"$schema": "https://json-schema.org/draft/2020-12/schema"
}
21 changes: 21 additions & 0 deletions codecs/asinh/tests/schema.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#![expect(missing_docs)]

use ::{ndarray as _, num_traits as _, schemars as _, serde as _, thiserror as _};

use numcodecs::{DynCodecType, StaticCodecType};
use numcodecs_asinh::AsinhCodec;

#[test]
fn schema() {
let schema = format!(
"{:#}",
StaticCodecType::<AsinhCodec>::of()
.codec_config_schema()
.to_value()
);

#[expect(clippy::manual_assert, clippy::panic)]
if schema != include_str!("schema.json") {
panic!("Asinh schema has changed\n===\n{schema}\n===");
}
}
2 changes: 1 addition & 1 deletion codecs/bit-round/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[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.87.0-blue
[MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
[repo]: https://github.com/juntyr/numcodecs-rs

[Latest Version]: https://img.shields.io/crates/v/numcodecs-bit-round
Expand Down
6 changes: 5 additions & 1 deletion codecs/bit-round/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! [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.87.0-blue
//! [MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
//! [repo]: https://github.com/juntyr/numcodecs-rs
//!
//! [Latest Version]: https://img.shields.io/crates/v/numcodecs-bit-round
Expand Down Expand Up @@ -180,6 +180,10 @@ impl<'de> Deserialize<'de> for NonNegative<f64> {
}

impl JsonSchema for NonNegative<f64> {
fn inline_schema() -> bool {
true
}

fn schema_name() -> Cow<'static, str> {
Cow::Borrowed("NonNegativeF64")
}
Expand Down
1 change: 1 addition & 0 deletions codecs/bit-round/tests/schema.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ fn schema() {
.to_value()
);

#[expect(clippy::manual_assert, clippy::panic)]
if schema != include_str!("schema.json") {
panic!("BitRound schema has changed\n===\n{schema}\n===");
}
Expand Down
2 changes: 1 addition & 1 deletion codecs/ebcc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[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.87.0-blue
[MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
[repo]: https://github.com/juntyr/numcodecs-rs

[Latest Version]: https://img.shields.io/crates/v/numcodecs-ebcc
Expand Down
7 changes: 6 additions & 1 deletion codecs/ebcc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! [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.87.0-blue
//! [MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
//! [repo]: https://github.com/juntyr/numcodecs-rs
//!
//! [Latest Version]: https://img.shields.io/crates/v/numcodecs-ebcc
Expand Down Expand Up @@ -64,6 +64,7 @@ pub struct EbccCodec {

#[derive(Debug, Copy, Clone, Default, Serialize, Deserialize, JsonSchema)]
#[serde(deny_unknown_fields)]
#[schemars(inline)]
/// Chunk shape that EBCC uses to handle large data.
pub enum EbccChunkShape {
/// EBCC chooses an appropriate chunk shape automatically.
Expand Down Expand Up @@ -290,6 +291,10 @@ impl<'de> Deserialize<'de> for Positive<f32> {
}

impl JsonSchema for Positive<f32> {
fn inline_schema() -> bool {
true
}

fn schema_name() -> Cow<'static, str> {
Cow::Borrowed("PositiveF32")
}
Expand Down
1 change: 1 addition & 0 deletions codecs/ebcc/tests/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
},
"minItems": 3,
"maxItems": 3,
"title": "Explicit",
"description": "EBCC uses the provided explicit chunk shape."
}
],
Expand Down
1 change: 1 addition & 0 deletions codecs/ebcc/tests/schema.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ fn schema() {
.to_value()
);

#[expect(clippy::manual_assert, clippy::panic)]
if schema != include_str!("schema.json") {
panic!("EBCC schema has changed\n===\n{schema}\n===");
}
Expand Down
2 changes: 1 addition & 1 deletion codecs/fixed-offset-scale/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[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.87.0-blue
[MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
[repo]: https://github.com/juntyr/numcodecs-rs

[Latest Version]: https://img.shields.io/crates/v/numcodecs-fixed-offset-scale
Expand Down
2 changes: 1 addition & 1 deletion codecs/fixed-offset-scale/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! [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.87.0-blue
//! [MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
//! [repo]: https://github.com/juntyr/numcodecs-rs
//!
//! [Latest Version]: https://img.shields.io/crates/v/numcodecs-fixed-offset-scale
Expand Down
29 changes: 29 additions & 0 deletions codecs/fixed-offset-scale/tests/schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"type": "object",
"additionalProperties": false,
"properties": {
"offset": {
"type": "number",
"format": "double",
"description": "The offset of the data."
},
"scale": {
"type": "number",
"format": "double",
"description": "The scale of the data."
},
"_version": {
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
"description": "The codec's encoding format version. Do not provide this parameter explicitly.",
"default": "1.0.0"
}
},
"required": [
"offset",
"scale"
],
"description": "Fixed offset-scale codec which calculates `$c = \\frac{x - o}{s}$` on\nencoding and `$d = (c \\cdot s) + o$` on decoding.\n\n- Setting `$o = \\text{mean}(x)$` and `$s = \\text{std}(x)$` normalizes that\n data.\n- Setting `$o = \\text{min}(x)$` and `$s = \\text{max}(x) - \\text{min}(x)$`\n standardizes the data.\n\nThe codec only supports floating point numbers.",
"title": "FixedOffsetScaleCodec",
"$schema": "https://json-schema.org/draft/2020-12/schema"
}
21 changes: 21 additions & 0 deletions codecs/fixed-offset-scale/tests/schema.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#![expect(missing_docs)]

use ::{ndarray as _, num_traits as _, schemars as _, serde as _, thiserror as _};

use numcodecs::{DynCodecType, StaticCodecType};
use numcodecs_fixed_offset_scale::FixedOffsetScaleCodec;

#[test]
fn schema() {
let schema = format!(
"{:#}",
StaticCodecType::<FixedOffsetScaleCodec>::of()
.codec_config_schema()
.to_value()
);

#[expect(clippy::manual_assert, clippy::panic)]
if schema != include_str!("schema.json") {
panic!("FixedOffsetScale schema has changed\n===\n{schema}\n===");
}
}
4 changes: 2 additions & 2 deletions codecs/fourier-network/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ keywords = ["fourier", "network", "numcodecs", "compression", "encoding"]

[dependencies]
burn = { workspace = true, features = ["std", "autodiff", "ndarray"] }
# FIXME: bytemuck 1.24 fails to compile on 1.88
bytemuck = { version = "=1.23.2", default-features = false }
itertools = { workspace = true, features = ["use_alloc"] }
log = { workspace = true }
# FIXME: bytemuck 1.24 fails to compile on 1.87
bytemuck = { version = "=1.23.2", default-features = false }
ndarray = { workspace = true, features = ["std"] }
numcodecs = { workspace = true }
num-traits = { workspace = true, features = ["std"] }
Expand Down
2 changes: 1 addition & 1 deletion codecs/fourier-network/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[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.87.0-blue
[MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
[repo]: https://github.com/juntyr/numcodecs-rs

[Latest Version]: https://img.shields.io/crates/v/numcodecs-fourier-network
Expand Down
8 changes: 6 additions & 2 deletions codecs/fourier-network/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! [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.87.0-blue
//! [MSRV]: https://img.shields.io/badge/MSRV-1.88.0-blue
//! [repo]: https://github.com/juntyr/numcodecs-rs
//!
//! [Latest Version]: https://img.shields.io/crates/v/numcodecs-fourier-network
Expand Down Expand Up @@ -46,7 +46,7 @@ use schemars::{JsonSchema, Schema, SchemaGenerator, json_schema};
use serde::{Deserialize, Deserializer, Serialize, Serializer};
use thiserror::Error;

// FIXME: bytemuck 1.24 fails to compile on 1.87
// FIXME: bytemuck 1.24 fails to compile on 1.88
use ::bytemuck as _;

// FIXME: burn-common -> cubecl-common brings in wasm-bindgen
Expand Down Expand Up @@ -222,6 +222,10 @@ impl<'de> Deserialize<'de> for Positive<f64> {
}

impl JsonSchema for Positive<f64> {
fn inline_schema() -> bool {
true
}

fn schema_name() -> Cow<'static, str> {
Cow::Borrowed("PositiveF64")
}
Expand Down
2 changes: 1 addition & 1 deletion codecs/fourier-network/tests/config.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![expect(missing_docs)]
#![expect(missing_docs, clippy::unwrap_used)]

use numcodecs::StaticCodec;
use numcodecs_fourier_network::FourierNetworkCodec;
Expand Down
1 change: 1 addition & 0 deletions codecs/fourier-network/tests/schema.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ fn schema() {
.to_value()
);

#[expect(clippy::manual_assert, clippy::panic)]
if schema != include_str!("schema.json") {
panic!("FourierNetwork schema has changed\n===\n{schema}\n===");
}
Expand Down
Loading
Loading