[package]
name = "spenso"
version = "0.6.0"
edition = "2024"
license = "MIT OR Apache-2.0"
authors = ["Lucien Huber <cargo+mail@lucien.ch>"]
description = "A tensor (n-dim array) network, iterating, and contraction (using automatic abstract index matching) library."
documentation = "https://docs.rs/spenso/latest/spenso/"
keywords = ["tensors", "contraction"]
# readme = "README.md"
repository = "https://github.com/alphal00p/spenso"


[package.metadata.docs.rs]
all-features = true

[lib]
path = "src/spenso.rs"


# [[test]]
# name = "three_loop"
# path = "tests/three_loop.rs"
# required-features = ["shadowing"]

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
insta = { version = "1.38.0", features = ["yaml", "json", "ron", "toml"] }
ron = "0.8"

[dependencies]
ahash = { version = "0.8.11", features = ["serde"] }
# ambassador = "0.3.6"
#
bincode-trait-derive = { version = "0.1.1" }
anyhow = { version = "1.0.86", features = ["backtrace"] }
append-only-vec = "0.1.6"
approxim = "0.6.6"
# auto_enums = "0.8.6"
bincode = { version = "2.0.1", features = ["serde"] }
# bincode = "2"
bitvec = { version = "1.0.1", features = ["serde"] }
# const_format = { version = "0.2.32", features = ["rust_1_51"] }
constcat = "0.5.0"
delegate = "0.12.0"
derive_more = "0.99.17"
# disjoint_impls = "0.7.1"
duplicate = "1.0.0"
dyn-clone = "1.0.17"
enum-try-as-inner = "0.1.1"
env_logger = "0.11.5"
# flexi_logger = "0.28.5"
gat-lending-iterator = "0.1.5"
indexmap = { version = "2.2.6", features = ["serde"] }
# itertools = "0.14.0"
log = "0.4.22"
num = { version = "0.4.3", features = ["serde"] }
once_cell = "1.20.2"
rand = "0.9"
rand_xoshiro = "0.6.0"
ref-ops = "0.2.5"
serde = "1.0"
serde_json = "1.0"
# serde_toml = "0.0.1"
slotmap = { version = "1.0.7", features = ["serde"] }
# smartstring = { version = "1.0.1", features = ["serde"] }
symbolica = { version = "1.2", optional = true, features = [
    "serde",
    "bincode",
], default-features = false }
thiserror = "1.0.60"
linnet = { version = "0.16", features = ["serde", "bincode"] }
spenso-macros = { version = "0.3" }
features = "0.10.0"
rayon = "1.10.0"
tabled = "0.20.0"
approx-derive = "0.2.6"

pyo3 = { version = "0.27", optional = true }

pyo3-stub-gen = { version = "0.17", default-features = false, optional = true }
colored = "3.0.0"
itertools = "0.14.0"
[features]
python = ["dep:pyo3"]
python_stubgen = ["dep:pyo3-stub-gen", "python"]
shadowing = ["dep:symbolica", "spenso-macros/shadowing"]
