# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85.0"
name = "eryon-actors"
version = "0.0.3"
authors = [
    "FL03 <jo3mccain@icloud.com> (https://github.com/FL03)",
    "Scattered-Systems <support@scsys.io> (https://github.com/scattered-systems)",
]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "this crate focuses on implementing various actors for the eryon framework"
homepage = "https://github.com/scattered-systems/eryon/wiki"
readme = "README.md"
keywords = [
    "computing",
    "machine-learning",
    "mathematics",
    "scientific",
    "topology",
]
categories = [
    "science",
    "mathematics",
    "virtualization",
]
license = "Apache-2.0"
repository = "https://github.com/scattered-systems/eryon.git"

[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}}"

[features]
alloc = [
    "concision/alloc",
    "rshyper/alloc",
    "rstmt/alloc",
    "serde?/alloc",
    "serde_json?/alloc",
    "scsys/alloc",
]
anyhow = [
    "dep:anyhow",
    "eryon-core/anyhow",
    "eryon-mem/anyhow",
    "eryon-surface/anyhow",
    "rstmt/anyhow",
    "scsys/anyhow",
]
approx = [
    "dep:approx",
    "concision/approx",
    "ndarray/approx",
    "eryon-surface/approx",
]
blas = [
    "concision/blas",
    "ndarray/blas",
    "eryon-surface/blas",
]
default = ["std"]
full = [
    "default",
    "anyhow",
    "rand",
    "serde",
    "tracing",
]
json = [
    "eryon-core/json",
    "eryon-mem/json",
    "eryon-surface/json",
    "rshyper/json",
    "rstmt/json",
    "scsys/json",
    "serde",
    "serde_json",
    "std",
]
nightly = ["eryon-core/nightly"]
rand = [
    "dep:rand",
    "dep:rand_distr",
    "concision/rand",
    "num/rand",
    "eryon-core/rand",
    "eryon-mem/rand",
    "eryon-surface/rand",
    "rng",
    "rshyper/rand",
    "rstmt/rand",
    "scsys/rand",
]
rayon = [
    "dep:rayon",
    "concision/rayon",
    "rshyper/rayon",
]
rng = [
    "eryon-core/rng",
    "eryon-mem/rng",
    "eryon-surface/rng",
    "rand/small_rng",
    "rand/thread_rng",
    "rshyper/rng",
    "rstmt/rng",
    "scsys/rng",
]
serde = [
    "dep:serde",
    "dep:serde_derive",
    "concision/serde",
    "num/serde",
    "eryon-core/serde",
    "eryon-mem/serde",
    "eryon-surface/serde",
    "rshyper/serde",
    "rstmt/serde",
    "scsys/serde",
]
serde_json = ["dep:serde_json"]
std = [
    "alloc",
    "anyhow?/std",
    "concision/std",
    "eryon-core/std",
    "eryon-mem/std",
    "eryon-surface/std",
    "rand?/std_rng",
    "rand_distr?/std",
    "rshyper/std",
    "rstmt/std",
    "scsys/std",
    "serde?/std",
    "serde_json?/std",
    "strum/std",
    "rand?/std",
    "tracing?/std",
    "thiserror/std",
]
tracing = [
    "dep:tracing",
    "concision/tracing",
    "eryon-core/tracing",
    "eryon-mem/tracing",
    "eryon-surface/tracing",
    "rshyper/tracing",
    "rstmt/tracing",
    "scsys/tracing",
]
wasi = [
    "eryon-core/wasi",
    "eryon-mem/wasi",
    "eryon-surface/wasi",
    "rshyper/wasi",
    "rstmt/wasi",
    "scsys/wasi",
]
wasm = [
    "eryon-core/wasm",
    "eryon-mem/wasm",
    "eryon-surface/wasm",
    "rayon?/web_spin_lock",
    "rshyper/wasm",
    "rstmt/wasm",
    "scsys/wasm",
]

[lib]
name = "eryon_actors"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"
test = true
doctest = true
bench = false
doc = true

[[example]]
name = "neural_engine"
path = "examples/neural_engine.rs"
required-features = [
    "approx",
    "rand",
    "tracing",
]

[[example]]
name = "plant"
path = "examples/plant.rs"
required-features = [
    "approx",
    "rand",
    "tracing",
]

[[example]]
name = "vnode"
path = "examples/vnode.rs"
required-features = [
    "approx",
    "rand",
    "tracing",
]

[[test]]
name = "default"
path = "tests/default.rs"
required-features = []

[[test]]
name = "plant"
path = "tests/plant.rs"
required-features = ["approx"]

[[test]]
name = "vnode"
path = "tests/vnode.rs"
required-features = []

[dependencies.anyhow]
version = "1"
optional = true
default-features = false

[dependencies.approx]
version = "0.5"
optional = true

[dependencies.concision]
version = "0.2.0"
default-features = false

[dependencies.eryon-core]
version = "0.0.3"
default-features = false

[dependencies.eryon-mem]
version = "0.0.3"
default-features = false

[dependencies.eryon-surface]
version = "0.0.3"
default-features = false

[dependencies.ndarray]
version = "0.16"
default-features = false

[dependencies.num]
version = "0.4"
default-features = false

[dependencies.num-traits]
version = "0.2"
default-features = false

[dependencies.paste]
version = "1"

[dependencies.rand]
version = "0.9"
optional = true
default-features = false

[dependencies.rand_distr]
version = "0.5"
optional = true
default-features = false

[dependencies.rayon]
version = "1"
optional = true
default-features = false

[dependencies.rshyper]
version = "0.1.8"
features = ["macros"]
default-features = false

[dependencies.rstmt]
version = "0.0.5"
features = ["nrt"]
default-features = false

[dependencies.rustfft]
version = "6"
features = [
    "avx",
    "neon",
    "wasm_simd",
]

[dependencies.scsys]
version = "0.3.0"
features = [
    "derive",
    "time",
]
default-features = false

[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
default-features = false

[dependencies.serde_derive]
version = "1"
optional = true

[dependencies.serde_json]
version = "1"
optional = true
default-features = false

[dependencies.strum]
version = "0.27"
features = [
    "derive",
    "derive",
]
default-features = false

[dependencies.thiserror]
version = "2"
default-features = false

[dependencies.tracing]
version = "0.1"
optional = true
default-features = false

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
    "ansi",
    "env-filter",
    "fmt",
    "time",
]
