ferrum-server 0.8.3

OpenAI-compatible HTTP API server for Ferrum inference
Documentation
[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]
# Core 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"

# Serialization
serde = { workspace = true }
# preserve_order: chat templates must see tool/argument JSON in the client's
# key order to render byte-identically to transformers (BTreeMap sorting
# breaks golden parity).
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"] }

# Error handling
anyhow = { workspace = true }
thiserror = { workspace = true }

# HTTP abstractions
http = "1.0"
http-body = "1.0"
mime = "0.3"

# Web framework for MVP server implementation
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"

# Logging and metrics
tracing = { workspace = true }
metrics = { workspace = true }
metrics-exporter-prometheus = { workspace = true }

# Authentication and security
jsonwebtoken = "9.2"
base64 = "0.22"

# Time handling
chrono = { workspace = true }
uuid = { workspace = true }

# Configuration
config = { workspace = true }

[dev-dependencies]
tokio-test = "0.4"
hyper = "1.0"
reqwest = { workspace = true }

[features]
default = []
openai-compat = []  # Enable OpenAI API compatibility
auth = []           # Enable authentication middleware
cors = []           # Enable CORS support
compression = []    # Enable response compression
rate-limiting = []  # Enable rate limiting middleware