[package]
edition = "2024"
rust-version = "1.95"
name = "oxinfer"
version = "0.0.3"
build = "build.rs"
exclude = [
"/models",
"/web",
"/tools",
"/.github",
"*.safetensors",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Local LLM inference in pure Rust (Gemma 4, Qwen 3.5/3.8): SIMD CPU kernels everywhere, GPUs detected at run time, and a WebAssembly + WebGPU browser build."
homepage = "https://karpeleslab.github.io/oxinfer/"
readme = "README.md"
keywords = [
"llm",
"inference",
"gemma",
"qwen",
"wasm",
]
categories = [
"science",
"wasm",
"command-line-utilities",
]
license = "MIT"
repository = "https://github.com/KarpelesLab/oxinfer"
[features]
default = [
"media",
"hf",
"gpu",
]
gpu = ["dep:dlsym"]
hf = ["dep:rsurl"]
media = [
"dep:oxideav-core",
"dep:oxideav-pipeline",
"dep:oxideav-meta",
"dep:oxideav-image",
]
web = ["dep:getrandom"]
[lib]
name = "oxinfer"
path = "src/lib.rs"
[[bin]]
name = "membench"
path = "src/bin/membench.rs"
[[bin]]
name = "oxinfer"
path = "src/main.rs"
[dependencies.anyhow]
version = "1.0.104"
[dependencies.dlsym]
version = "0.0.2"
optional = true
[dependencies.getrandom]
version = "0.3"
optional = true
default-features = false
[dependencies.half]
version = "2.7.1"
[dependencies.oxideav-core]
version = "0.1"
optional = true
[dependencies.oxideav-image]
version = "0.0.5"
optional = true
[dependencies.oxideav-meta]
version = "0.0.3"
features = [
"png",
"mjpeg",
"webp",
"gif",
"bmp",
"basic",
"mp3",
"flac",
"aac",
"mp4",
"mov",
"ogg",
"vorbis",
"opus",
"mkv",
"riff",
]
optional = true
default-features = false
[dependencies.oxideav-pipeline]
version = "0.1"
optional = true
[dependencies.regex]
version = "1.12"
features = [
"std",
"unicode",
]
default-features = false
[dependencies.rsurl]
version = "0.1.20"
features = [
"purecrypto-tls",
"idn",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0.229"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.154"
features = ["preserve_order"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.memmap2]
version = "0.9.11"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokenizers]
version = "0.23.2"
features = ["unstable_wasm"]
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.tokenizers]
version = "0.23.2"
features = ["unstable_wasm"]
default-features = false
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = 1