[package]
name = "ferrum-server"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
description = "OpenAI-compatible HTTP API server for Ferrum inference"
readme = "../../README.md"
[dependencies]
ferrum-types = { workspace = true }
ferrum-interfaces = { workspace = true }
ferrum-engine = { workspace = true }
ferrum-bench-core = { workspace = true }
ferrum-scheduler = { workspace = true }
ferrum-sampler = { workspace = true }
async-trait = { workspace = true }
tokio = { workspace = true }
futures = { workspace = true }
pin-project = "1.1"
serde = { workspace = true }
serde_json = { workspace = true, features = ["preserve_order"] }
jsonschema = { workspace = true }
sha2 = "0.10"
minijinja = { version = "2.20", features = ["json", "preserve_order"] }
minijinja-contrib = { version = "2.20", features = ["pycompat"] }
anyhow = { workspace = true }
thiserror = { workspace = true }
http = "1.0"
http-body = "1.0"
mime = "0.3"
axum = { version = "0.7", features = ["ws", "multipart"] }
tower = { version = "0.4", features = ["util"] }
tower-http = { version = "0.5", features = ["cors", "trace"] }
hyper = "1.0"
tokio-stream = "0.1"
tracing = { workspace = true }
metrics = { workspace = true }
metrics-exporter-prometheus = { workspace = true }
jsonwebtoken = "9.2"
base64 = "0.22"
chrono = { workspace = true }
uuid = { workspace = true }
config = { workspace = true }
[dev-dependencies]
tokio-test = "0.4"
hyper = "1.0"
reqwest = { workspace = true }
[features]
default = []
openai-compat = []
auth = []
cors = []
compression = []
rate-limiting = []