[package]
name = "fusor-core"
version = "0.1.0"
authors = ["Evan Almloff <evanalmloff@gmail.com>"]
license = "MIT/Apache-2.0"
edition = "2024"

[dependencies]
# Use stable when https://github.com/gfx-rs/wgpu/issues/7712 is resolved
wgpu = { git = "https://github.com/ealmloff/wgpu", branch = "yield-now", features = ["static-dxc"] }
env_logger = "0.10.1"
bytemuck = { version = "1.14", features = ["derive"] }
futures-util = "0.3.31"
futures = "0.3.31"
futures-channel = "0.3.31"
tabbycat = "0.1.3"
half = { version = "2.4.1", features = ["bytemuck"] }
enumset = "1.1.5"
fusor-gguf = { workspace = true }
fusor-types = { workspace = true }
rustc-hash = "2.1.1"
thiserror.workspace = true
parking_lot = "0.12.3"
tracing = "0.1.41"
lru = "0.14.0"
pollster = "0.4.0"
petgraph = "0.8.3"

[features]
extra_assertions = []

[dev-dependencies]
ndarray = "0.16.1"
rand.workspace = true
tokio = { version = "1.43.0", features = ["full"] }
criterion = { version = "0.3", features = ["async_futures"] }
pretty_assertions = "1.4.1"
reqwest = "0.12.15"
num-traits = "0.2.19"
tracing-subscriber = "0.3.19"
candle-core = { workspace = true }
candle-nn = { workspace = true }
candle-transformers = { workspace = true }
kalosm-common = { workspace = true, features = ["tokio"] }
kalosm-model-types.workspace = true

[target.'cfg(target_os = "macos")'.dev-dependencies]
candle-core = { workspace = true, features = ["metal"] }
candle-nn = { workspace = true, features = ["metal"] }
candle-transformers = { workspace = true, features = ["metal"] }

[[bench]]
name = "matmul"
harness = false

[[bench]]
name = "qmatmul"
harness = false

[[bench]]
name = "elementwise"
harness = false

[[bench]]
name = "pairwise"
harness = false

[[bench]]
name = "fused"
harness = false

[[bench]]
name = "reduce"
harness = false

[[bench]]
name = "softmax"
harness = false