[package] name = "backtesting_service" version.workspace = true edition.workspace = true rust-version.workspace = true authors.workspace = true license.workspace = true description = "Standalone backtesting service for Foxhunt HFT trading system" [[bin]] name = "backtesting_service" path = "src/main.rs" [[bench]] name = "dbn_loading_benchmark" harness = false [[bench]] name = "real_data_comprehensive_benchmark" harness = false [dependencies] # Core async and utilities - USE WORKSPACE tokio.workspace = true serde.workspace = true serde_json.workspace = true anyhow.workspace = true thiserror.workspace = true tracing.workspace = true tracing-subscriber.workspace = true uuid.workspace = true chrono.workspace = true num_cpus.workspace = true rand.workspace = true rust_decimal.workspace = true semver.workspace = true num-traits.workspace = true # gRPC - USE WORKSPACE tonic.workspace = true tonic-prost.workspace = true prost.workspace = true tonic-health.workspace = true # gRPC health checking protocol # HTTP server for health checks - USE WORKSPACE axum.workspace = true # Performance monitoring prometheus.workspace = true once_cell.workspace = true # Database - USE WORKSPACE sqlx.workspace = true influxdb2.workspace = true # Configuration - USE WORKSPACE config.workspace = true dotenvy.workspace = true # Async and parallel processing - USE WORKSPACE tokio-stream.workspace = true async-stream.workspace = true async-trait.workspace = true rayon.workspace = true crossbeam.workspace = true dashmap.workspace = true # Cryptography and security for TLS/mTLS x509-parser = "0.16" reqwest = { version = "0.12", features = ["rustls-tls"], default-features = false } rustls = { version = "0.23", features = ["ring"], default-features = false } # Wave 75: TLS crypto provider base64.workspace = true sha2.workspace = true # DBN (Databento Binary) support for market data replay dbn = "0.42.0" # CLI argument parsing for validation tools clap = { version = "4.5", features = ["derive"] } # Internal workspace crates trading_engine.workspace = true risk.workspace = true ml = { workspace = true, features = ["financial"] } # Minimal ML for backtesting data.workspace = true common = { workspace = true, features = ["database"] } storage.workspace = true model_loader = { path = "../../model_loader" } # Real model loading with S3 and caching # Model functionality from ml-data ml-data = { path = "../../ml-data" } [dev-dependencies] tokio-test.workspace = true serial_test.workspace = true tower.workspace = true # For ServiceExt in health_check_tests.rs tower-test = "0.4" # For tower testing utilities tli.workspace = true # For proto definitions in grpc_error_handling.rs jsonwebtoken = "9.3" # For JWT token generation in grpc_error_handling.rs tests criterion = { version = "0.5", features = ["async_tokio"] } # Performance benchmarking futures = "0.3" # For concurrent benchmark tests tempfile = "3.8" # For temporary test directories [build-dependencies] # NOTE: Tonic 0.14+ uses tonic-prost-build instead of tonic-build tonic-prost-build.workspace = true prost-build.workspace = true [features] default = ["postgres", "influxdb"] postgres = ["sqlx/postgres"] influxdb = [] standalone = []