hf2q 0.1.13

Pure Rust CLI for converting HuggingFace models to hardware-optimized formats and serving them over an OpenAI-compatible API on Apple Silicon
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.88.0"
name = "hf2q"
version = "0.1.13"
authors = ["Robert E. Lee <robert@agidreams.us>"]
build = "src/build_script.rs"
exclude = [
    ".agents/**",
    "CLAUDE.md.pre-ruflo*",
    "artifacts/**",
    "tests/**",
    "!tests/completions.rs",
    "!tests/continuous_batching_throughput.rs",
    "!tests/convert_integration.rs",
    "!tests/lcp_partial_prefill_byte_identity.rs",
    "!tests/lcp_registry_unit.rs",
    "!tests/fixtures/deepseek_v4_encoding/**",
    "!tests/fixtures/ggml_quants/**",
    "!tests/fixtures/qwen38/**",
    "docs/2306.14048.pdf",
    "docs/adr/diary/",
    "docs/spike-*.md",
    "docs/wave*.md",
    "docs/perf-traces/",
    "docs/phase0-*.json",
    "docs/research/",
    "archive/",
    "docs/reference-lock.md",
    "docs/adr/007-pathC/",
    "docs/operator-peer-refresh-runbook.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust CLI for converting HuggingFace models to hardware-optimized formats and serving them over an OpenAI-compatible API on Apple Silicon"
homepage = "https://github.com/robertelee78/hf2q"
documentation = "https://github.com/robertelee78/hf2q"
readme = "README.md"
keywords = [
    "llm",
    "gguf",
    "mlx",
    "quantization",
    "huggingface",
]
categories = [
    "command-line-utilities",
    "science",
]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/robertelee78/hf2q"

[features]
default = []
ruvector = ["dep:ruvector-core"]

[lib]
name = "hf2q"
path = "src/lib.rs"

[[bin]]
name = "hf2q"
path = "src/main.rs"

[[test]]
name = "completions"
path = "tests/completions.rs"

[[test]]
name = "continuous_batching_throughput"
path = "tests/continuous_batching_throughput.rs"

[[test]]
name = "convert_integration"
path = "tests/convert_integration.rs"

[[test]]
name = "lcp_partial_prefill_byte_identity"
path = "tests/lcp_partial_prefill_byte_identity.rs"

[[test]]
name = "lcp_registry_unit"
path = "tests/lcp_registry_unit.rs"

[dependencies.ahash]
version = "0.8"

[dependencies.anyhow]
version = "1"

[dependencies.async-stream]
version = "0.3"

[dependencies.axum]
version = "0.7"
features = ["json"]

[dependencies.base64]
version = "0.22"

[dependencies.bytemuck]
version = "1.25"

[dependencies.clap]
version = "4.5"
features = [
    "derive",
    "string",
]

[dependencies.clap_complete]
version = "=4.6.7"
features = ["unstable-dynamic"]

[dependencies.console]
version = "0.15"

[dependencies.ctrlc]
version = "3.4"
features = ["termination"]

[dependencies.futures]
version = "0.3"

[dependencies.half]
version = "2.4"

[dependencies.hex]
version = "0.4"

[dependencies.hf-hub]
version = "0.5"

[dependencies.image]
version = "0.25"
features = [
    "png",
    "jpeg",
]
default-features = false

[dependencies.indicatif]
version = "0.18.4"

[dependencies.libc]
version = "0.2"

[dependencies.memmap2]
version = "0.9"

[dependencies.minijinja]
version = "2"

[dependencies.minijinja-contrib]
version = "2"
features = ["pycompat"]
default-features = false

[dependencies.mlx-native]
version = "=0.11.2"

[dependencies.percent-encoding]
version = "=2.3.2"

[dependencies.rand]
version = "0.8"

[dependencies.rayon]
version = "1.10"

[dependencies.regex]
version = "1"

[dependencies.reqwest]
version = "0.12"
features = [
    "blocking",
    "json",
    "stream",
    "rustls-tls",
]
default-features = false

[dependencies.rustix]
version = "=1.1.4"
features = [
    "fs",
    "process",
]

[dependencies.ruvector-core]
version = "2.3"
optional = true

[dependencies.safetensors]
version = "0.7"

[dependencies.semver]
version = "1"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"
features = ["preserve_order"]

[dependencies.sha1]
version = "=0.10.7"

[dependencies.sha2]
version = "0.10"

[dependencies.sysinfo]
version = "0.32"

[dependencies.tempfile]
version = "3"

[dependencies.thiserror]
version = "2"

[dependencies.tokenizers]
version = "0.22"
features = ["onig"]
default-features = false

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.toml]
version = "=1.1.4"
features = [
    "parse",
    "display",
    "serde",
]
default-features = false

[dependencies.tower-http]
version = "0.5"
features = ["cors"]

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = [
    "env-filter",
    "json",
]

[dependencies.url]
version = "=2.5.8"

[dependencies.uuid]
version = "1"
features = ["v4"]

[dev-dependencies.assert_cmd]
version = "2"

[dev-dependencies.criterion]
version = "0.5"

[dev-dependencies.futures-util]
version = "0.3"

[dev-dependencies.predicates]
version = "3"

[dev-dependencies.regex]
version = "1"

[dev-dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "stream",
    "rustls-tls",
]
default-features = false

[dev-dependencies.syn]
version = "2"
features = [
    "full",
    "extra-traits",
    "visit",
]

[dev-dependencies.tower]
version = "0.4"
features = ["util"]

[target.'cfg(target_os = "macos")'.dependencies.async-dnssd]
version = "=0.5.1"

[target.'cfg(target_os = "macos")'.dependencies.sysctl]
version = "=0.6.0"
default-features = false

[lints.rust]
warnings = "deny"