[package] name = "infer-inference" version.workspace = true edition.workspace = true authors.workspace = true license.workspace = true description = "Transformer inference engine — forward pass, attention, FFN, layer norm from safetensors weights" keywords = ["transformer", "inference", "llm", "interpretability"] categories = ["science"] [dependencies] infer-models = { path = "../infer-models" } infer-compute = { path = "../infer-compute" } infer-core = { path = "../infer-core" } infer-vindex = { path = "../infer-vindex" } serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } # Model weights safetensors = "0.5" memmap2 = "0.9" # System libc = "0.2" # Matrix ops (BLAS-accelerated) ndarray = { version = "0.16", features = ["blas"] } # Parallelism for the walk loop (per-feature work is embarrassingly parallel). rayon = "1.10" # Tokenizer tokenizers = "0.21" # Remote FFN backend (RemoteWalkBackend -> POST /v1/walk-ffn) reqwest = { version = "0.12", features = ["blocking", "json"] } # WASM expert registry wasmtime = { version = "29", default-features = false, features = ["cranelift", "runtime"] } wasmtime-wasi = "29" anyhow = "1" [target.'cfg(target_os = "linux")'.dependencies] blas-src = { version = "0.10", features = ["openblas"], default-features = false } openblas-src = { version = "0.10", features = ["system"] } [target.'cfg(target_os = "macos")'.dependencies] blas-src = { version = "0.10", features = ["accelerate"] } [features] default = [] metal = ["infer-compute/metal"] [dev-dependencies] assert_approx_eq = "1" tempfile = "3"