New web-gateway crate with: - JWT auth middleware with claims extraction - REST routes proxying to gRPC: trading, risk, ML, training, backtesting, performance, config, and hyperparameter tuning - Proto compilation from shared tli/proto definitions - AppState with lazy gRPC channels and WebSocket broadcast - Axum server with CORS, tracing, and graceful shutdown Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
58 lines
1.2 KiB
TOML
58 lines
1.2 KiB
TOML
[package]
|
|
name = "web-gateway"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
description = "REST + WebSocket gateway for Foxhunt web dashboard"
|
|
|
|
[[bin]]
|
|
name = "web-gateway"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# HTTP server
|
|
axum = { workspace = true, features = ["ws"] }
|
|
tower.workspace = true
|
|
tower-http = { workspace = true, features = ["cors", "trace"] }
|
|
|
|
# gRPC client
|
|
tonic = { workspace = true, features = ["transport", "tls-ring", "tls-webpki-roots"] }
|
|
tonic-prost.workspace = true
|
|
prost.workspace = true
|
|
|
|
# Async runtime
|
|
tokio.workspace = true
|
|
tokio-stream.workspace = true
|
|
futures-util.workspace = true
|
|
|
|
# Serialization
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
|
|
# Auth
|
|
jsonwebtoken.workspace = true
|
|
|
|
# Error handling & logging
|
|
anyhow.workspace = true
|
|
thiserror.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
|
|
# Shared types
|
|
common.workspace = true
|
|
|
|
# Time and IDs
|
|
chrono.workspace = true
|
|
uuid.workspace = true
|
|
|
|
[build-dependencies]
|
|
tonic-prost-build.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tokio-test.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|