Files

41 lines
1.4 KiB
TOML

[package]
name = "ai-server"
version = "0.1.0"
edition = "2024"
[[bin]]
name = "ai-server"
path = "src/main.rs"
[dependencies]
# Shared tunnel, TLS, enrollment, private-file, and RON behavior.
wg-app-link = { path = "../wg-app-link/server" }
event-model = { path = "../event-model" }
axum = { version = "0.8", features = ["json", "multipart"] }
axum-server = { version = "0.8", features = ["tls-rustls"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "sync", "time", "process", "io-util", "signal"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
serde = { version = "1", features = ["derive"] }
# Transcript pages and SSE must serialize identical bytes. The default parser changed
# 1788546972.6030757 to ...0755, breaking cache comparisons.
serde_json = { version = "1", features = ["float_roundtrip"] }
ron = "0.12.2"
clap = { version = "4", features = ["derive"] }
anyhow = "1"
thiserror = "2"
sha2 = "0.11"
rand = "0.10"
base64 = "0.23"
# The usage endpoint is polled infrequently, so a blocking client suffices.
ureq = { version = "3", features = ["json"] }
# Select a CryptoProvider explicitly because transitive dependencies enable two.
rustls = "0.23"
libc = "0.2.189"
time = { version = "0.3", features = ["formatting"] }
[dev-dependencies]
tempfile = "3"
tower = { version = "0.5", features = ["util"] }