[package] name = "core" 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 = "Core performance infrastructure for Foxhunt HFT system" [dependencies] # Internal workspace crates config = { workspace = true } # Core workspace dependencies tokio = { workspace = true, features = ["full", "rt-multi-thread", "macros"] } serde = { workspace = true, features = ["derive"] } serde_json.workspace = true uuid = { workspace = true, features = ["v4", "fast-rng"] } thiserror.workspace = true anyhow.workspace = true tracing.workspace = true async-trait.workspace = true # Financial and numerical types rust_decimal = { workspace = true, features = ["std", "serde-with-str", "db-postgres"] } rust_decimal_macros = { workspace = true } chrono = { workspace = true, features = ["serde"] } rand = { workspace = true, features = ["std", "small_rng"] } rand_chacha.workspace = true # High-performance data structures dashmap.workspace = true crossbeam-queue.workspace = true # Memory safety and concurrent data structures once_cell.workspace = true # System-level dependencies for CPU affinity and performance libc.workspace = true num_cpus.workspace = true # Validation and text processing regex.workspace = true # Database integration and persistence layer sqlx = { workspace = true, features = ["postgres", "runtime-tokio-rustls", "chrono", "uuid"], optional = true } redis = { version = "0.23", features = ["tokio-comp", "connection-manager"] } influxdb = { version = "0.7", optional = true } clickhouse = { version = "0.11", optional = true } # Metrics and monitoring prometheus.workspace = true # OpenTelemetry for distributed tracing opentelemetry = { version = "0.20", features = ["trace"] } opentelemetry-otlp = { version = "0.13", features = ["tonic"] } opentelemetry_sdk = { version = "0.20", features = ["trace", "rt-tokio"] } # HDR Histogram for P50/P95/P99 latency analysis hdrhistogram = "7.5" parking_lot = "0.12" # Utilities lazy_static.workspace = true toml.workspace = true serde_yaml.workspace = true log = "0.4" # SIMD optimization (conditional) wide = { version = "0.7", features = ["serde"], optional = true } # Compression for event storage flate2.workspace = true # Networking reqwest = { workspace = true } url = { workspace = true } sha2 = { workspace = true } # AWS SDK for S3 archival (optional) aws-sdk-s3 = { version = "1.34", optional = true } aws-config = { version = "1.5", optional = true } aws-types = { version = "1.3", optional = true } tokio-util = { version = "0.7", features = ["io"], optional = true } [dev-dependencies] tokio-test.workspace = true proptest.workspace = true rstest.workspace = true tempfile.workspace = true mockall.workspace = true criterion = { workspace = true, features = ["html_reports"] } quickcheck.workspace = true [features] default = ["serde", "simd", "std", "brokers", "persistence"] profiling = [] serde = [] simd = ["wide"] packed-simd = ["simd"] avx2 = ["simd"] avx512 = ["simd", "avx2"] std = [] persistence = ["sqlx"] database-conversions = ["sqlx"] brokers = ["interactive-brokers", "icmarkets"] interactive-brokers = [] icmarkets = [] paper-trading = [] influxdb-support = ["influxdb"] clickhouse-support = ["clickhouse"] s3-archival = ["aws-sdk-s3", "aws-config", "aws-types", "tokio-util"] python = [] [build-dependencies] autocfg = "1.1" [lints] workspace = true # Configuration for documentation [package.metadata.docs.rs] features = ["simd", "avx2", "database-conversions"] rustdoc-args = ["--cfg", "docsrs"]