open(bytes) -> H5File with kind/list/info/attrs/attrErrors/read/ readHyperslab. Numeric data comes back in the typed array of the stored width (Int16Array for i16, BigInt64Array for i64, Float32Array for f32/f16, ...), strings and enum names as string arrays, array datatypes flattened with their dims appended to the shape. Compound, reference, opaque and VL-sequence datasets are refused with an error naming the type; nothing is returned as reinterpreted bytes. The logic is in a plain-Rust core module, tested natively: unit tests, and h5py_interop, which compares every dataset, hyperslab, listing and attribute of an h5py- and a netCDF4-written file with what libhdf5 reads back (generator shared with the Node test of the built package). No mmap, no threads; lz4 is on, zstd/szip (C) are not. A wasm-release profile (opt-level s, LTO) serves the browser build. ci-test.sh lints the crate for wasm32 and checks it builds no C. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
47 lines
1.2 KiB
TOML
47 lines
1.2 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/clawhdf5-format",
|
|
"crates/clawhdf5-io",
|
|
"crates/clawhdf5-filters",
|
|
"crates/clawhdf5-derive",
|
|
"crates/clawhdf5",
|
|
"crates/clawhdf5-netcdf4",
|
|
"crates/clawhdf5-ann",
|
|
"crates/clawhdf5-py",
|
|
"crates/clawhdf5-gpu",
|
|
"crates/clawhdf5-accel",
|
|
"crates/clawhdf5-agent",
|
|
"crates/clawhdf5-migrate",
|
|
"crates/clawhdf5-android",
|
|
"crates/clawhdf5-cli",
|
|
"crates/clawhdf5-napi",
|
|
"crates/clawhdf5-bench",
|
|
"crates/clawhdf5-wasm",
|
|
"crates/libaec-sys",
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
version = "2.7.0"
|
|
edition = "2024"
|
|
# Oldest toolchain that builds the whole workspace; CI checks it. wgpu (in
|
|
# clawhdf5-gpu) requires 1.92.
|
|
rust-version = "1.92"
|
|
license = "MIT"
|
|
repository = "https://git.redclaw.dev/quantumclaw/clawhdf5"
|
|
|
|
[workspace.dependencies]
|
|
tempfile = "3"
|
|
criterion = { version = "0.5", features = ["html_reports"] }
|
|
half = "2.7"
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
# The browser build of clawhdf5-wasm (examples/wasm-viewer/build.sh): size
|
|
# over speed, whole-program optimisation. Native profiles are unaffected.
|
|
[profile.wasm-release]
|
|
inherits = "release"
|
|
opt-level = "s"
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|