diff --git a/Cargo.lock b/Cargo.lock index 5cb444ea1..914932e50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,9 +158,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -242,7 +242,7 @@ dependencies = [ "jsonwebtoken", "num-traits", "once_cell", - "prometheus 0.14.0", + "prometheus", "prost 0.14.1", "prost-build", "qrcode", @@ -293,9 +293,9 @@ dependencies = [ "futures", "hdrhistogram", "jsonwebtoken", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "plotters", - "prometheus 0.13.4", + "prometheus", "prost 0.13.5", "rand 0.8.5", "reqwest 0.12.23", @@ -1241,17 +1241,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "backoff" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" -dependencies = [ - "getrandom 0.2.16", - "instant", - "rand 0.8.5", -] - [[package]] name = "backon" version = "1.5.2" @@ -1259,6 +1248,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" dependencies = [ "fastrand", + "gloo-timers", + "tokio", ] [[package]] @@ -1280,8 +1271,8 @@ dependencies = [ "ml", "ndarray", "num-traits", - "parking_lot 0.12.4", - "prometheus 0.14.0", + "parking_lot 0.12.5", + "prometheus", "proptest", "rust_decimal", "rust_decimal_macros", @@ -1615,18 +1606,18 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", @@ -1744,9 +1735,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.39" +version = "1.2.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f" +checksum = "e1d05d92f4b1fd76aad469d46cdd858ca761576082cd37df81416691e50199fb" dependencies = [ "find-msvc-tools", "jobserver", @@ -2358,7 +2349,7 @@ dependencies = [ "crossterm_winapi", "libc", "mio 0.8.11", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "signal-hook", "signal-hook-mio", "winapi", @@ -2373,7 +2364,7 @@ dependencies = [ "bitflags 2.9.4", "crossterm_winapi", "mio 1.0.4", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "rustix 0.38.44", "signal-hook", "signal-hook-mio", @@ -2548,7 +2539,7 @@ dependencies = [ "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.11", + "parking_lot_core 0.9.12", ] [[package]] @@ -2562,7 +2553,7 @@ dependencies = [ "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.11", + "parking_lot_core 0.9.12", "serde", ] @@ -2596,7 +2587,7 @@ dependencies = [ "nonzero", "num-traits", "num_cpus", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "parquet", "rand 0.8.5", "redis", @@ -2752,7 +2743,7 @@ dependencies = [ "backtrace", "lazy_static", "mintex", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "rustc-hash 1.1.0", "serde", "serde_json", @@ -2838,9 +2829,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dwrote" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c93d234bac0cdd0e2ac08bc8a5133f8df2169e95b262dfcea5e5cb7855672f" +checksum = "9e1b35532432acc8b19ceed096e35dfa088d3ea037fe4f3c085f1f97f33b4d02" dependencies = [ "lazy_static", "libc", @@ -2860,13 +2851,20 @@ dependencies = [ [[package]] name = "dyn-stack" -version = "0.13.0" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490bd48eb68fffcfed519b4edbfd82c69cbe741d175b84f0e0cbe8c57cbe0bdd" +checksum = "1c4713e43e2886ba72b8271aa66c93d722116acf7a75555cce11dcde84388fe8" dependencies = [ "bytemuck", + "dyn-stack-macros", ] +[[package]] +name = "dyn-stack-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05dbec7076f432bb132db738df90d87a4f5789e99f59e7b1219a6b8ef61eaa68" + [[package]] name = "ecdsa" version = "0.14.8" @@ -3116,9 +3114,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" +checksum = "0399f9d26e5191ce32c498bebd31e7a3ceabc2745f0ac54af3f335126c3f24b3" [[package]] name = "fixedbitset" @@ -3144,9 +3142,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "04bcaeafafdd3cd1cb5d986ff32096ad1136630207c49b9091e3ae541090d938" dependencies = [ "crc32fast", "libz-rs-sys", @@ -3278,7 +3276,7 @@ dependencies = [ "futures", "http 1.3.1", "lazy_static", - "prometheus 0.14.0", + "prometheus", "proptest", "prost 0.14.1", "rand 0.8.5", @@ -3429,7 +3427,7 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.12.4", + "parking_lot 0.12.5", ] [[package]] @@ -3527,7 +3525,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab96b703d31950f1aeddded248bc95543c9efc7ac9c4a21fda8703a83ee35451" dependencies = [ - "dyn-stack 0.13.0", + "dyn-stack 0.13.2", "gemm-c32 0.18.2", "gemm-c64 0.18.2", "gemm-common 0.18.2", @@ -3562,7 +3560,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6db9fd9f40421d00eea9dd0770045a5603b8d684654816637732463f4073847" dependencies = [ - "dyn-stack 0.13.0", + "dyn-stack 0.13.2", "gemm-common 0.18.2", "num-complex 0.4.6", "num-traits", @@ -3592,7 +3590,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfcad8a3d35a43758330b635d02edad980c1e143dc2f21e6fd25f9e4eada8edf" dependencies = [ - "dyn-stack 0.13.0", + "dyn-stack 0.13.2", "gemm-common 0.18.2", "num-complex 0.4.6", "num-traits", @@ -3628,7 +3626,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a352d4a69cbe938b9e2a9cb7a3a63b7e72f9349174a2752a558a8a563510d0f3" dependencies = [ "bytemuck", - "dyn-stack 0.13.0", + "dyn-stack 0.13.2", "half 2.6.0", "libm", "num-complex 0.4.6", @@ -3666,7 +3664,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cff95ae3259432f3c3410eaa919033cd03791d81cebd18018393dc147952e109" dependencies = [ - "dyn-stack 0.13.0", + "dyn-stack 0.13.2", "gemm-common 0.18.2", "gemm-f32 0.18.2", "half 2.6.0", @@ -3699,7 +3697,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc8d3d4385393304f407392f754cd2dc4b315d05063f62cf09f47b58de276864" dependencies = [ - "dyn-stack 0.13.0", + "dyn-stack 0.13.2", "gemm-common 0.18.2", "num-complex 0.4.6", "num-traits", @@ -3729,7 +3727,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35b2a4f76ce4b8b16eadc11ccf2e083252d8237c1b589558a49b0183545015bd" dependencies = [ - "dyn-stack 0.13.0", + "dyn-stack 0.13.2", "gemm-common 0.18.2", "num-complex 0.4.6", "num-traits", @@ -3817,6 +3815,18 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "go-parse-duration" version = "0.1.1" @@ -3835,7 +3845,7 @@ dependencies = [ "futures-timer", "no-std-compat", "nonzero_ext", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "portable-atomic", "quanta", "rand 0.8.5", @@ -4874,7 +4884,7 @@ checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ "bitflags 2.9.4", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.18", ] [[package]] @@ -4916,11 +4926,10 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] @@ -5230,9 +5239,9 @@ dependencies = [ "num-traits", "num_cpus", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "petgraph 0.6.5", - "prometheus 0.14.0", + "prometheus", "proptest", "rand 0.8.5", "rand_distr 0.4.3", @@ -5372,9 +5381,9 @@ dependencies = [ [[package]] name = "moxcms" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08" +checksum = "1cc7d85f3d741164e8972ad355e26ac6e51b20fcae5f911c7da8f2d8bbbb3f33" dependencies = [ "num-traits", "pxfm", @@ -5721,9 +5730,9 @@ dependencies = [ [[package]] name = "objc2-core-foundation" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ "bitflags 2.9.4", ] @@ -5752,7 +5761,7 @@ dependencies = [ "hyper 1.7.0", "itertools 0.13.0", "md-5", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "percent-encoding", "quick-xml", "rand 0.8.5", @@ -5914,12 +5923,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", - "parking_lot_core 0.9.11", + "parking_lot_core 0.9.12", ] [[package]] @@ -5938,18 +5947,17 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "backtrace", "cfg-if", "libc", "petgraph 0.6.5", - "redox_syscall 0.5.17", + "redox_syscall 0.5.18", "smallvec", - "thread-id", - "windows-targets 0.52.6", + "windows-link 0.2.0", ] [[package]] @@ -6389,21 +6397,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "prometheus" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.4", - "protobuf 2.28.0", - "thiserror 1.0.69", -] - [[package]] name = "prometheus" version = "0.14.0" @@ -6414,8 +6407,8 @@ dependencies = [ "fnv", "lazy_static", "memchr", - "parking_lot 0.12.4", - "protobuf 3.7.2", + "parking_lot 0.12.5", + "protobuf", "thiserror 2.0.17", ] @@ -6539,12 +6532,6 @@ dependencies = [ "prost 0.14.1", ] -[[package]] -name = "protobuf" -version = "2.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" - [[package]] name = "protobuf" version = "3.7.2" @@ -7030,9 +7017,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ "bitflags 2.9.4", ] @@ -7244,7 +7231,7 @@ dependencies = [ "num 0.4.3", "num-traits", "orderbook", - "prometheus 0.14.0", + "prometheus", "proptest", "rand 0.8.5", "rand_distr 0.4.3", @@ -7669,9 +7656,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" dependencies = [ "fnv", "quick-error 1.2.3", @@ -7979,7 +7966,7 @@ dependencies = [ "futures", "log", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "scc", "serial_test_derive", ] @@ -8516,7 +8503,7 @@ version = "1.0.0" dependencies = [ "anyhow", "async-trait", - "backoff", + "backon", "bincode", "bytes", "chrono", @@ -8529,7 +8516,7 @@ dependencies = [ "indexmap", "lru", "object_store", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "rustc-hash 1.1.0", "serde", "serde_json", @@ -8862,7 +8849,7 @@ dependencies = [ "lazy_static", "ml", "num 0.4.3", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "perf-event", "proptest", "quickcheck", @@ -8939,16 +8926,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" -[[package]] -name = "thread-id" -version = "4.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe8f25bbdd100db7e1d34acf7fd2dc59c4bf8f7483f505eaa7d4f12f76cc0ea" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "thread_local" version = "1.1.9" @@ -9127,7 +9104,7 @@ dependencies = [ "io-uring", "libc", "mio 1.0.4", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "pin-project-lite", "signal-hook-registry", "slab", @@ -9623,8 +9600,8 @@ dependencies = [ "lru", "num_cpus", "once_cell", - "parking_lot 0.12.4", - "prometheus 0.14.0", + "parking_lot 0.12.5", + "prometheus", "proptest", "rand 0.8.5", "redis", @@ -9635,6 +9612,7 @@ dependencies = [ "serde_json", "sha2", "sqlx", + "tempfile", "thiserror 1.0.69", "tokio", "tokio-util", @@ -9673,7 +9651,7 @@ dependencies = [ "ml-data", "num-traits", "once_cell", - "prometheus 0.14.0", + "prometheus", "prost 0.14.1", "prost-build", "rand 0.8.5", diff --git a/ml/Cargo.toml b/ml/Cargo.toml index 6eef9b97f..eabf58dff 100644 --- a/ml/Cargo.toml +++ b/ml/Cargo.toml @@ -27,7 +27,7 @@ simd = [] # SIMD without heavy dependencies # Storage and memory management features gc = [] # Garbage collection features s3-storage = ["aws-config", "aws-sdk-s3", "aws-types", "aws-credential-types", "urlencoding"] # S3 storage backend with AWS SDK -cuda = [] # CUDA support (moved to training service) +cuda = ["candle-core/cuda", "candle-core/cudnn"] # CUDA support - OPTIONAL for CI/Docker # ALL HEAVY ML FEATURES REMOVED: # gpu, pytorch, linfa-ml - MOVED TO ml_training_service @@ -63,8 +63,8 @@ risk = { path = "../risk" } storage = { path = "../storage" } -# Essential ML frameworks for HFT inference - CUDA REQUIRED FOR PERFORMANCE -candle-core = { version = "0.9", features = ["cuda", "cudnn"] } # CUDA mandatory for HFT latency +# Essential ML frameworks for HFT inference - CUDA OPTIONAL (enable via 'cuda' feature) +candle-core = { version = "0.9" } # CPU-only by default, add 'cuda' feature for GPU candle-nn = { version = "0.9" } candle-optimisers = { version = "0.9" } diff --git a/services/api_gateway/load_tests/Cargo.toml b/services/api_gateway/load_tests/Cargo.toml index 321d9bdbd..948475ff3 100644 --- a/services/api_gateway/load_tests/Cargo.toml +++ b/services/api_gateway/load_tests/Cargo.toml @@ -21,7 +21,7 @@ prost = "0.13" # Metrics and histograms hdrhistogram = "7.5" -prometheus = "0.13" +prometheus = "0.14" # System monitoring sysinfo = "0.34" diff --git a/storage/Cargo.toml b/storage/Cargo.toml index b81b10b36..8e6519515 100644 --- a/storage/Cargo.toml +++ b/storage/Cargo.toml @@ -60,7 +60,7 @@ config = { workspace = true } # Common types and utilities common = { workspace = true } # Error handling and retry logic -backoff = "0.4" +backon = "1.5" # Replaced unmaintained backoff crate [dev-dependencies] # Testing diff --git a/trading_engine/Cargo.toml b/trading_engine/Cargo.toml index b8a132878..87ac692ff 100644 --- a/trading_engine/Cargo.toml +++ b/trading_engine/Cargo.toml @@ -96,6 +96,7 @@ tokio-util = { version = "0.7", features = ["io"], optional = true } [dev-dependencies] proptest.workspace = true futures.workspace = true +tempfile.workspace = true [features] default = ["serde", "simd", "std", "brokers", "persistence"]