[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 async and utilities tokio.workspace = true tokio-stream.workspace = true tokio-util.workspace = true futures.workspace = true futures-util.workspace = true futures-core = "0.3" async-trait.workspace = true # async-stream.workspace = true # Unused - commented out bytes.workspace = true # Serialization and error handling serde.workspace = true serde_json.workspace = true uuid.workspace = true anyhow.workspace = true thiserror.workspace = true chrono.workspace = true tracing.workspace = true # Network and HTTP - USE WORKSPACE DEFAULTS reqwest.workspace = true tokio-tungstenite = { version = "0.21", features = ["rustls-tls-webpki-roots"] } tungstenite = "0.21" url.workspace = true # Market data providers - USE WORKSPACE DEFAULTS # databento.workspace = true # REMOVED - too heavy, use direct feeds instead # TLS support - USE WORKSPACE DEFAULTS (rustls provided by tokio-tungstenite feature) native-tls.workspace = true tokio-native-tls.workspace = true # rustls = "0.23" # REMOVED - conflicts with workspace versions, use tokio-tungstenite rustls feature webpki-roots = "0.26" xml-rs = { workspace = true } time = { workspace = true } hex = { workspace = true } md5 = { workspace = true } # Financial types - USE WORKSPACE DEFAULTS rust_decimal.workspace = true rust_decimal_macros.workspace = true num-traits = "0.2" # Random number generation for testing rand.workspace = true # System information num_cpus.workspace = true # Configuration and utilities - USE WORKSPACE DEFAULTS config.workspace = true toml.workspace = true base64.workspace = true regex.workspace = true # Compression and serialization - USE WORKSPACE DEFAULTS flate2.workspace = true zstd.workspace = true lz4.workspace = true bincode.workspace = true sha2.workspace = true hashbrown.workspace = true smallvec.workspace = true fastrand.workspace = true crossbeam.workspace = true crossbeam-channel.workspace = true # Parquet for market data persistence and backtesting replay parquet.workspace = true arrow.workspace = true # High-performance data structures - USE WORKSPACE DEFAULTS dashmap.workspace = true parking_lot.workspace = true # Rate limiting and caching governor = "0.6" nonzero = "0.2" redis = { workspace = true, optional = true } # Internal workspace crates trading_engine.workspace = true common = { path = "../common" } dbn = "0.42.0" [dev-dependencies] tokio-test = { workspace = true } # proptest = { workspace = true } # REMOVED from workspace criterion = { workspace = true } hdrhistogram = "7.5" tempfile = { workspace = true } # wiremock = { workspace = true } # REMOVED from workspace tracing-subscriber = { workspace = true } serial_test = "3.2" [features] default = ["databento", "benzinga", "icmarkets"] # Re-enabled databento feature for core functionality databento = [] redis-cache = ["redis"] benzinga = [] icmarkets = [] ib = [] mock = [] [[example]] name = "broker_connection" path = "examples/broker_connection.rs" [lints] workspace = true