Files
foxhunt/data/Cargo.toml
jgrusewski 8950831817 🎉 MAJOR: Shared libraries architecture complete with Vault integration
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
2025-09-25 09:23:52 +02:00

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