concision-utils 0.2.8

Concision is a toolkit for designing machine-learning models in Rust.
[package]
build = "build.rs"
name = "concision-utils"

authors.workspace = true
categories.workspace = true
description.workspace = true
edition.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
readme.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true

[lib]
crate-type = ["cdylib", "rlib"]
bench = false
doc = true
doctest = true
test = true

[dependencies]
# custom
variants = { workspace = true }
# concurrency & parallelism
rayon = { optional = true, workspace = true }
# data & serialization
serde = { optional = true, workspace = true }
serde_derive = { optional = true, workspace = true }
serde_json = { optional = true, workspace = true }
# error-handling
anyhow = { optional = true, workspace = true }
thiserror = { workspace = true }
# logging
tracing = { optional = true, workspace = true }
# macros & utilities
paste = { workspace = true }
smart-default = { workspace = true }
strum = { workspace = true }
# mathematics
approx = { optional = true, workspace = true }
ndarray = { workspace = true }
num = { workspace = true }
num-complex = { optional = true, workspace = true }
num-traits = { workspace = true }
rustfft = { optional = true, workspace = true }
# random
getrandom = { default-features = false, optional = true, workspace = true }
rand = { optional = true, workspace = true }
rand_distr = { optional = true, workspace = true }

[dev-dependencies]
anyhow = { features = ["std"], workspace = true }
lazy_static = { workspace = true }

[features]
default = [ 
  "std",
]

full = [
  "approx",
  "complex",
  "default",
  "json",
  "rand",
  "serde",
  "tracing",
]

nightly = []

# ************* [FF:Features] *************
signal =[
  "complex",
  "rustfft",
]

# ************* [FF:Dependencies] *************
std = [
  "alloc",
  "ndarray/std",
  "num/std",
  "num-complex?/std",
  "num-traits/std",
  "rand?/std",
  "rand?/std_rng",
  "serde/std",
  "strum/std",
  "thiserror/std",
  "tracing?/std",
  "variants/std",
]

wasi = []

wasm = [
  "getrandom?/wasm_js",
]
# ************* [FF:Dependencies] *************
alloc = [
  "num/alloc",
  "serde?/alloc",
  "serde_json?/alloc",
  "variants/alloc",
]

approx = ["dep:approx", "ndarray/approx"]

blas = ["ndarray/blas"]

complex = ["dep:num-complex"]

json = [
  "alloc",
  "serde",
  "serde_json",
]

rand = [
  "dep:rand",
  "dep:rand_distr",
  "num/rand",
  "num-complex?/rand",
  "rng",
]

rayon = ["dep:rayon", "ndarray/rayon"]

rng = [
  "dep:getrandom",
  "rand?/small_rng",
  "rand?/thread_rng",
]

rustfft = ["dep:rustfft"]

serde = [
  "dep:serde",
  "dep:serde_derive",
  "ndarray/serde",
  "num/serde",
  "num-complex?/serde",
  "rand?/serde",
  "rand_distr?/serde",
]

serde_json = ["dep:serde_json"]

tracing = ["dep:tracing"]

# ********* [Unit Tests] *********
[[test]]
name = "default"

[[test]]
name = "fft"
required-features = ["approx", "signal", "std"]

[[test]]
name = "tensor"
required-features = ["approx", "std", "complex"]

[[test]]
name = "traits"
required-features = ["approx", "std", "complex"]

# ********* [Metadata] *********
[package.metadata.docs.rs]
all-features = false
features = ["full"]
rustc-args = ["--cfg", "docsrs"]
version = "v{{version}}"

[package.metadata.release]
no-dev-version = true
tag-name = "{{version}}"