COMPLETED: ✅ Created 3 shared libraries: common, config (foxhunt-config), storage ✅ Config library: PostgreSQL hot-reload, Vault integration, unified ConfigManager ✅ Storage library: S3 with Vault credentials, model checkpoints, zero hardcoded keys ✅ Common library: Shared types, database connections, error handling ✅ Fixed TLI protobuf compilation issues (duplicate health_check, Aad types) ✅ Trading Service migrated to use centralized config SECURITY IMPROVEMENTS: 🔒 ALL AWS credentials now from Vault (no environment variables) 🔒 Circuit breaker patterns for external services 🔒 Secure error messages that don't leak credentials 🔒 Automatic credential refresh with 5-minute TTL ARCHITECTURE: - Single source of truth for configuration - Zero code duplication for common functionality - Hot-reload capability via PostgreSQL NOTIFY/LISTEN - Multi-tier storage with compression and lifecycle management - Type-safe configuration with comprehensive error handling Next: Complete service migrations to use shared libraries
109 lines
2.6 KiB
TOML
109 lines
2.6 KiB
TOML
[package]
|
|
name = "data"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
homepage.workspace = true
|
|
documentation.workspace = true
|
|
publish.workspace = true
|
|
keywords.workspace = true
|
|
categories.workspace = true
|
|
description = "Market data ingestion and broker integration for high-frequency trading systems"
|
|
|
|
[dependencies]
|
|
# Core dependencies
|
|
tokio = { workspace = true }
|
|
tokio-stream = { workspace = true }
|
|
tokio-util = "0.7"
|
|
anyhow = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
uuid = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
chrono = { workspace = true }
|
|
tracing = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
futures = { workspace = true }
|
|
futures-util = "0.3"
|
|
bytes = { workspace = true }
|
|
|
|
# Network and connectivity
|
|
reqwest = { workspace = true }
|
|
tokio-tungstenite = { workspace = true }
|
|
url = { workspace = true }
|
|
|
|
# Data providers
|
|
databento = "0.34.0"
|
|
# Benzinga dependencies already present: reqwest, tokio-tungstenite, serde_json
|
|
native-tls = { workspace = true }
|
|
tokio-native-tls = { workspace = true }
|
|
|
|
# FIX protocol and broker connectivity
|
|
xml-rs = { workspace = true }
|
|
time = { workspace = true }
|
|
hex = { workspace = true }
|
|
md5 = { workspace = true }
|
|
|
|
# Financial types and calculations
|
|
rust_decimal = { workspace = true }
|
|
rust_decimal_macros = { workspace = true }
|
|
|
|
# Configuration and utilities
|
|
foxhunt-config = { workspace = true }
|
|
toml = { workspace = true }
|
|
base64 = { workspace = true }
|
|
regex = { workspace = true }
|
|
|
|
# Collections and performance
|
|
# Compression and serialization
|
|
flate2 = "1.0"
|
|
zstd = "0.13"
|
|
lz4 = "1.24"
|
|
bincode = "1.3"
|
|
sha2 = "0.10"
|
|
hashbrown = "0.14"
|
|
smallvec = { workspace = true }
|
|
fastrand = { workspace = true }
|
|
crossbeam = { workspace = true }
|
|
crossbeam-channel = { workspace = true }
|
|
|
|
# Parquet support for market data persistence - temporarily disabled due to chrono compatibility issues
|
|
parquet = "56.2"
|
|
arrow = "56.2"
|
|
|
|
dashmap = { workspace = true }
|
|
parking_lot = { workspace = true }
|
|
|
|
# Workspace crates
|
|
foxhunt-core = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
tokio-test = { workspace = true }
|
|
proptest = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
wiremock = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
|
|
[features]
|
|
default = ["databento", "benzinga", "icmarkets"]
|
|
databento = []
|
|
benzinga = []
|
|
icmarkets = []
|
|
ib = []
|
|
mock = []
|
|
|
|
[[example]]
|
|
name = "icmarkets_demo"
|
|
path = "examples/icmarkets_demo.rs"
|
|
required-features = ["icmarkets"]
|
|
|
|
[[example]]
|
|
name = "broker_connection"
|
|
path = "examples/broker_connection.rs"
|
|
|
|
[lints]
|
|
workspace = true
|