diff --git a/Cargo.lock b/Cargo.lock index 6316ec0..c9e273a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -882,6 +882,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "digest" version = "0.10.7" @@ -1624,6 +1633,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-integer" version = "0.1.46" @@ -1897,6 +1912,12 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.20" @@ -2698,10 +2719,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.23" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ + "deranged", + "num-conv", + "powerfmt", "serde", "time-core", "time-macros", @@ -2709,16 +2733,17 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.10" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] diff --git a/Cargo.toml b/Cargo.toml index 9e2cc2f..53ea7cf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,17 +46,17 @@ mime = "0.3" ndarray = "0.15" ndarray-stats = "0.5" num_cpus = "1" -num-traits = "0.2.16" +num-traits = "0.2.19" opentelemetry = "0.20" opentelemetry-jaeger = { version = "0.19", features = ["rt-tokio"] } prometheus = { version = "0.13", features = ["process"] } -rayon = "1.7" +rayon = "1.10" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" strum_macros = "0.24" thiserror = "1.0" -time = "= 0.3.23" -tokio = { version = "1.28", features = ["full"] } +time = "=0.3.36" +tokio = { version = "1.40", features = ["full"] } tokio-rayon = "2.1" tower = "0.4" tower-http = { version = "0.4", features = ["normalize-path", "trace", "validate-request"] } @@ -66,7 +66,7 @@ tracing-opentelemetry = "0.21" tracing-subscriber = { version = "0.3", features = ["env-filter"] } url = { version = "2", features = ["serde"] } validator = { version = "0.16", features = ["derive"] } -zerocopy = { version = "0.6.1", features = ["alloc", "simd"] } +zerocopy = { version = "0.6.6", features = ["alloc", "simd"] } zune-inflate = "0.2.54" [dev-dependencies] diff --git a/README.md b/README.md index d3e67ab..ab4b84c 100644 --- a/README.md +++ b/README.md @@ -21,26 +21,26 @@ Note: The original S3 Active Storage project was renamed to Reductionist, to avo Reductionist provides the following features: -* HTTP(S) API with JSON request data -* Access to data stored in S3-compatible storage -* Basic numerical operations on multi-dimensional arrays (count, min, max, select, sum) -* Perform calculations on a selection/slice of an array -* Perform calculations allowing for missing data -* Compressed data (GZip, Zlib) -* Filtered data (byte shuffle) -* Data with non-native byte order (endianness) -* Server resource (CPU, memory, files) management -* [Prometheus](https://prometheus.io/) metrics -* Tracing with an option to send data to [Jaeger](https://www.jaegertracing.io/) -* Ansible-based containerised deployment +- HTTP(S) API with JSON request data +- Access to data stored in S3-compatible storage +- Basic numerical operations on multi-dimensional arrays (count, min, max, select, sum) +- Perform calculations on a selection/slice of an array +- Perform calculations allowing for missing data +- Compressed data (GZip, Zlib) +- Filtered data (byte shuffle) +- Data with non-native byte order (endianness) +- Server resource (CPU, memory, files) management +- [Prometheus](https://prometheus.io/) metrics +- Tracing with an option to send data to [Jaeger](https://www.jaegertracing.io/) +- Ansible-based containerised deployment ## Related projects -* [PyActiveStorage](https://github.com/valeriupredoi/PyActiveStorage) is a Python library which performs reductions on numerical data in data sources such as netCDF4. It has support for delegating computation to Reductionist when the data is stored in an S3-compatible object store. +- [PyActiveStorage](https://github.com/NCAS-CMS/PyActiveStorage) is a Python library which performs reductions on numerical data in data sources such as netCDF4. It has support for delegating computation to Reductionist when the data is stored in an S3-compatible object store. ## Contributing -See the [contributor guide](https://stackhpc.github.io/reductionist-rs/contributing.html) for information about contributing to Reductionist. +See the [contributor guide](https://stackhpc.github.io/reductionist-rs/contributing/) for information about contributing to Reductionist. ## License