-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
74 lines (69 loc) · 2.46 KB
/
Copy pathCargo.toml
File metadata and controls
74 lines (69 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
[workspace]
resolver = "3"
members = [
"rust/tensogram",
"rust/tensogram-encodings",
"rust/tensogram-sz3",
"rust/tensogram-sz3-sys",
"rust/tensogram-szip",
"rust/tensogram-cli",
"rust/tensogram-ffi",
"examples/rust",
"rust/benchmarks",
]
# tensogram-python is built via `maturin develop` (PyO3 extension modules
# require the Python linker). It is excluded from default workspace builds.
exclude = [
"python/bindings",
"rust/tensogram-grib",
"rust/tensogram-netcdf",
"rust/tensogram-wasm",
"fuzz",
]
[workspace.package]
version = "0.24.0"
edition = "2024"
rust-version = "1.87"
authors = ["ECMWF <software@ecmwf.int>"]
license = "Apache-2.0"
repository = "https://github.com/ecmwf/tensogram"
homepage = "https://sites.ecmwf.int/docs/tensogram/main"
[workspace.dependencies]
thiserror = "2"
ciborium = "0.2"
serde = { version = "1", features = ["derive"] }
xxhash-rust = { version = "0.8", features = ["xxh3"] }
uuid = { version = "1", features = ["v4"] }
tracing = "0.1"
clap = { version = "4", features = ["derive", "env"] }
serde_json = "1"
libaec-sys = "0.1"
tensogram-szip = { path = "rust/tensogram-szip", version = "=0.24.0" }
zstd = { version = "0.13", features = ["zstdmt"] }
ruzstd = "0.8"
lz4_flex = "0.11"
blosc2 = { version = "0.2", default-features = false, features = ["zstd", "zlib"] }
blosc2-sys = { package = "blosc2-rs-sys", version = "0.1" }
zfp-sys-cc = "0.2"
tensogram-sz3 = { path = "rust/tensogram-sz3", version = "=0.24.0" }
tensogram-sz3-sys = { path = "rust/tensogram-sz3-sys", version = "=0.24.0" }
proptest = "1"
rayon = "1"
# Prevent panics from unwinding across the FFI boundary (undefined behaviour).
# With panic = "abort", any panic terminates the process immediately.
[profile.release]
panic = "abort"
[profile.dev]
panic = "abort"
# Profile used by `cargo mutants` for both the build and test phases.
# Inherits from `release` (so test wallclock is 8x faster than dev) but
# pins `codegen-units = 1` to serialise rustc's internal codegen
# threads. Without this pin, each rustc invocation in release mode
# defaults to 16 codegen threads — and cargo's jobserver only counts
# the rustc *process* as one slot, not its 16 internal threads. With
# `--jobserver-tasks 2` that's 2 × 16 = 32 simultaneous codegen threads
# during peak build. On a 12-core laptop this triggers brief peak-power
# events that load average smooths over but a power supply does not.
[profile.release-mutants]
inherits = "release"
codegen-units = 1