[package]
edition = "2021"
rust-version = "1.88"
name = "hanzo-engine"
version = "0.6.1"
authors = ["Hanzo AI"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Hanzo Engine - fast, flexible LLM inference engine written in Rust."
homepage = "https://github.com/hanzoai/engine"
readme = "README.md"
keywords = [
"llm",
"inference",
"machine-learning",
"ai",
"transformers",
]
categories = [
"science",
"api-bindings",
"text-processing",
]
license = "MIT"
repository = "https://github.com/hanzoai/engine"
[features]
accelerate = [
"hanzo-ml/accelerate",
"hanzo-nn/accelerate",
"hanzo-quant/accelerate",
]
code-execution = ["dep:hanzo-code-exec"]
cuda = [
"hanzo-ml/cuda",
"hanzo-nn/cuda",
"dep:cudaforge",
"hanzo-quant/cuda",
"dep:hanzo-paged-attn",
"hanzo-paged-attn/cuda",
]
cudnn = ["hanzo-ml/cudnn"]
flash-attn = [
"cuda",
"dep:hanzo-flash-attn",
]
flash-attn-v3 = [
"cuda",
"dep:hanzo-flash-attn-v3",
]
metal = [
"hanzo-ml/metal",
"hanzo-nn/metal",
"hanzo-quant/metal",
"dep:hanzo-metal-kernels",
"dep:objc",
"dep:hanzo-paged-attn",
"hanzo-paged-attn/metal",
"dep:objc2-metal",
]
mkl = [
"hanzo-ml/mkl",
"hanzo-nn/mkl",
]
nccl = [
"cuda",
"hanzo-quant/nccl",
]
pyo3_macros = [
"pyo3",
"hanzo-llm-mcp/pyo3_macros",
]
ring = ["hanzo-quant/ring"]
rocm = [
"hanzo-ml/rocm",
"hanzo-nn/rocm",
"hanzo-quant/rocm",
]
utoipa = ["dep:utoipa"]
vulkan = [
"hanzo-ml/vulkan",
"hanzo-nn/vulkan",
"hanzo-quant/vulkan",
]
[lib]
name = "hanzo_engine"
path = "src/lib.rs"
[dependencies.accelerate-src]
version = "0.3.2"
optional = true
[dependencies.ahash]
version = "0.8.12"
[dependencies.akin]
version = "0.4.0"
[dependencies.anyhow]
version = "1.0.100"
[dependencies.apodize]
version = "1.0.0"
[dependencies.as-any]
version = "0.3.2"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.base64]
version = "0.22.1"
[dependencies.bm25]
version = "2.3.2"
[dependencies.bytemuck]
version = "1.24.0"
[dependencies.bytemuck_derive]
version = "1.10.2"
[dependencies.cfgrammar]
version = "0.14.1"
[dependencies.chrono]
version = "0.4.43"
[dependencies.clap]
version = "4.5.54"
features = [
"derive",
"wrap_help",
]
[dependencies.csv]
version = "1.4.0"
[dependencies.derive-new]
version = "0.7.0"
[dependencies.derive_more]
version = "2.1.1"
features = ["from"]
default-features = false
[dependencies.dirs]
version = "6.0.0"
[dependencies.either]
version = "1.15.0"
features = ["serde"]
[dependencies.float8]
version = "0.7.0"
[dependencies.futures]
version = "0.3"
[dependencies.galil-seiferas]
version = "0.1.5"
[dependencies.half]
version = "2.7.1"
[dependencies.hanzo-audio]
version = "0.6.1"
[dependencies.hanzo-code-exec]
version = "0.6.1"
optional = true
[dependencies.hanzo-flash-attn]
version = "0.10.2"
optional = true
package = "hanzo-flash-attn"
[dependencies.hanzo-flash-attn-v3]
version = "0.10.2"
optional = true
package = "hanzo-flash-attn"
[dependencies.hanzo-llm-mcp]
version = "0.6.1"
features = ["utoipa"]
[dependencies.hanzo-ml]
version = "0.10.2"
package = "hanzo-ml"
[dependencies.hanzo-nn]
version = "0.10.2"
package = "hanzo-nn"
[dependencies.hanzo-paged-attn]
version = "0.6.1"
optional = true
[dependencies.hanzo-quant]
version = "0.6.1"
[dependencies.hanzo-sandbox]
version = "0.6.1"
[dependencies.hanzo-vision]
version = "0.6.1"
[dependencies.hashbrown]
version = "0.16.1"
[dependencies.hf-hub]
version = "0.4.3"
features = [
"ureq",
"tokio",
"rustls-tls",
]
default-features = false
[dependencies.hound]
version = "3.5.1"
[dependencies.html2text]
version = "0.16.6"
[dependencies.http]
version = "1.4.0"
[dependencies.image]
version = "0.25.9"
features = [
"bmp",
"dds",
"exr",
"ff",
"gif",
"hdr",
"ico",
"jpeg",
"png",
"pnm",
"qoi",
"tga",
"tiff",
"webp",
]
default-features = false
[dependencies.indexmap]
version = "2.13.0"
features = ["serde"]
[dependencies.indicatif]
version = "0.18.3"
features = ["rayon"]
[dependencies.intel-mkl-src]
version = "0.8.1"
features = ["mkl-static-lp64-iomp"]
optional = true
[dependencies.interprocess]
version = "2.2.3"
[dependencies.itertools]
version = "0.14.0"
[dependencies.libc]
version = "0.2.180"
[dependencies.llguidance]
version = "1.2.0"
features = ["lark"]
default-features = false
[dependencies.lrtable]
version = "0.14.1"
[dependencies.mime_guess]
version = "2.0.5"
[dependencies.minijinja]
version = "2.14.0"
features = [
"builtins",
"json",
]
[dependencies.minijinja-contrib]
version = "2.14.0"
features = ["pycompat"]
[dependencies.num-traits]
version = "0.2.19"
[dependencies.openai-harmony]
version = "0.0.8"
[dependencies.ordered-float]
version = "5.1.0"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.pyo3]
version = "0.25.1"
features = [
"full",
"extension-module",
"either",
"abi3-py310",
]
optional = true
[dependencies.radix_trie]
version = "0.3.0"
[dependencies.rand]
version = "0.9.3"
[dependencies.rand_distr]
version = "0.5.1"
[dependencies.rand_isaac]
version = "0.4.0"
[dependencies.rayon]
version = "1.11.0"
[dependencies.regex]
version = "1.12.2"
[dependencies.regex-automata]
version = "0.4.13"
features = ["meta"]
[dependencies.reqwest]
version = "0.13.1"
features = [
"blocking",
"rustls",
"charset",
"http2",
]
default-features = false
[dependencies.rubato]
version = "0.16.2"
[dependencies.rust-mcp-schema]
version = "0.9.5"
features = [
"schema_utils",
"latest",
]
default-features = false
[dependencies.rustc-hash]
version = "2.1.1"
[dependencies.rustfft]
version = "6.4.1"
[dependencies.safetensors]
version = "0.7.0"
[dependencies.schemars]
version = "1.2.0"
[dependencies.scraper]
version = "0.25.0"
[dependencies.serde]
version = "1.0.228"
[dependencies.serde-big-array]
version = "0.5.1"
[dependencies.serde-saphyr]
version = "0.0.16"
[dependencies.serde_json]
version = "1.0.149"
[dependencies.serde_plain]
version = "1.0.2"
[dependencies.sha1]
version = "0.10"
[dependencies.statrs]
version = "0.18.0"
[dependencies.strum]
version = "0.27.2"
features = ["derive"]
[dependencies.symphonia]
version = "0.5.5"
features = [
"mp3",
"flac",
"vorbis",
"wav",
"isomp4",
"ogg",
"pcm",
]
default-features = false
[dependencies.sysinfo]
version = "0.36.1"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tokenizers]
version = "0.21.4"
default-features = false
[dependencies.tokio]
version = "1.49.0"
features = [
"full",
"rt-multi-thread",
]
[dependencies.tokio-rayon]
version = "2.1.0"
[dependencies.tokio-tungstenite]
version = "0.28.0"
[dependencies.toktrie]
version = "1.4.0"
[dependencies.toktrie_hf_tokenizers]
version = "1.2.0"
[dependencies.toml]
version = "0.9.11"
[dependencies.tqdm]
version = "0.8.0"
[dependencies.tracing]
version = "0.1.44"
[dependencies.tracing-subscriber]
version = "0.3.22"
features = ["env-filter"]
[dependencies.urlencoding]
version = "2.1.3"
[dependencies.utoipa]
version = "5.4.0"
optional = true
[dependencies.uuid]
version = "1.19.0"
features = ["v4"]
[dependencies.variantly]
version = "0.4.0"
[dependencies.vob]
version = "3.0.6"
[dev-dependencies.tempfile]
version = "3"
[build-dependencies.cudaforge]
version = "0.1.2"
optional = true
[target.'cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos"))'.dependencies.hanzo-metal-kernels]
version = "0.10.2"
optional = true
package = "hanzo-metal-kernels"
[target.'cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos"))'.dependencies.objc]
version = "0.2.7"
optional = true
[target.'cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos"))'.dependencies.objc2-metal]
version = "0.3.2"
optional = true