Compiling trading_engine v1.0.0 (/home/jgrusewski/Work/foxhunt/trading_engine) Compiling api_gateway v1.0.0 (/home/jgrusewski/Work/foxhunt/services/api_gateway) warning: unused import: `std::collections::HashMap` --> services/api_gateway/src/routing/rate_limiter.rs:18:5 | 18 | use std::collections::HashMap; | ^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default warning: type `HealthState` is more private than the item `backtesting_proxy::HealthChecker::get_state` --> services/api_gateway/src/grpc/backtesting_proxy.rs:93:5 | 93 | pub async fn get_state(&self) -> HealthState { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `backtesting_proxy::HealthChecker::get_state` is reachable at visibility `pub` | note: but type `HealthState` is only usable at visibility `pub(self)` --> services/api_gateway/src/grpc/backtesting_proxy.rs:32:1 | 32 | enum HealthState { | ^^^^^^^^^^^^^^^^ = note: `#[warn(private_interfaces)]` on by default warning: fields `issuer` and `audience` are never read --> services/api_gateway/src/auth/interceptor.rs:314:5 | 308 | pub struct JwtService { | ---------- fields in this struct ... 314 | issuer: String, | ^^^^^^ 315 | /// Expected audience 316 | audience: String, | ^^^^^^^^ | = note: `#[warn(dead_code)]` on by default warning: field `user_id` is never read --> services/api_gateway/src/config/authz.rs:36:5 | 35 | struct UserPermissions { | --------------- field in this struct 36 | user_id: Uuid, | ^^^^^^^ | = note: `UserPermissions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis warning: fields `role_name`, `permissions`, and `loaded_at` are never read --> services/api_gateway/src/config/authz.rs:44:5 | 43 | struct RolePermissions { | --------------- fields in this struct 44 | role_name: String, | ^^^^^^^^^ 45 | permissions: HashSet, | ^^^^^^^^^^^ 46 | loaded_at: Instant, | ^^^^^^^^^ | = note: `RolePermissions` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis warning: fields `last_health_check` and `health_check_interval` are never read --> services/api_gateway/src/grpc/backtesting_proxy.rs:42:5 | 39 | pub struct HealthChecker { | ------------- fields in this struct ... 42 | last_health_check: RwLock, | ^^^^^^^^^^^^^^^^^ 43 | failure_threshold: u32, 44 | health_check_interval: Duration, | ^^^^^^^^^^^^^^^^^^^^^ warning: method `has_tokens` is never used --> services/api_gateway/src/routing/rate_limiter.rs:53:8 | 39 | impl TokenBucket { | ---------------- method in this implementation ... 53 | fn has_tokens(&self) -> bool { | ^^^^^^^^^^ warning: `api_gateway` (lib) generated 7 warnings (run `cargo fix --lib -p api_gateway` to apply 1 suggestion) warning: unused variable: `auth_interceptor` --> services/api_gateway/src/main.rs:93:9 | 93 | let auth_interceptor = AuthInterceptor::new( | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_interceptor` | = note: `#[warn(unused_variables)]` on by default warning: `api_gateway` (lib) generated 7 warnings (7 duplicates) warning: `api_gateway` (bin "api_gateway") generated 1 warning Finished `bench` profile [optimized] target(s) in 1m 37s Running benches/revocation_cache_perf.rs (/home/jgrusewski/Work/foxhunt/target/release/deps/revocation_cache_perf-7fb5cc7facfa2253) Benchmarking revocation_cache_hit Benchmarking revocation_cache_hit: Warming up for 3.0000 s Benchmarking revocation_cache_hit: Collecting 100 samples in estimated 5.0001 s (58M iterations) Benchmarking revocation_cache_hit: Analyzing revocation_cache_hit time: [85.363 ns 86.243 ns 87.220 ns] Found 2 outliers among 100 measurements (2.00%) 2 (2.00%) high severe Benchmarking revocation_cache_miss_with_redis Benchmarking revocation_cache_miss_with_redis: Warming up for 3.0000 s Benchmarking revocation_cache_miss_with_redis: Collecting 100 samples in estimated 5.6785 s (20k iterations) Benchmarking revocation_cache_miss_with_redis: Analyzing revocation_cache_miss_with_redis time: [175.98 ns 180.01 ns 184.43 ns] Found 10 outliers among 100 measurements (10.00%) 3 (3.00%) high mild 7 (7.00%) high severe Benchmarking hot_token_pattern_95pct_hits Benchmarking hot_token_pattern_95pct_hits: Warming up for 3.0000 s Benchmarking hot_token_pattern_95pct_hits: Collecting 100 samples in estimated 5.0005 s (54M iterations) Benchmarking hot_token_pattern_95pct_hits: Analyzing hot_token_pattern_95pct_hits time: [90.339 ns 91.820 ns 93.566 ns] Found 9 outliers among 100 measurements (9.00%) 5 (5.00%) high mild 4 (4.00%) high severe Hot token pattern stats: 87448030 hits, 11 misses, 100.00% hit rate Benchmarking ttl_expiration/1ms_ttl Benchmarking ttl_expiration/1ms_ttl: Warming up for 3.0000 s Benchmarking ttl_expiration/1ms_ttl: Collecting 100 samples in estimated 5.0003 s (58M iterations) Benchmarking ttl_expiration/1ms_ttl: Analyzing ttl_expiration/1ms_ttl time: [87.694 ns 88.848 ns 90.441 ns] Found 3 outliers among 100 measurements (3.00%) 2 (2.00%) high mild 1 (1.00%) high severe Benchmarking ttl_expiration/60s_ttl Benchmarking ttl_expiration/60s_ttl: Warming up for 3.0000 s Benchmarking ttl_expiration/60s_ttl: Collecting 100 samples in estimated 5.0001 s (55M iterations) Benchmarking ttl_expiration/60s_ttl: Analyzing ttl_expiration/60s_ttl time: [89.642 ns 90.949 ns 92.864 ns] Found 11 outliers among 100 measurements (11.00%) 1 (1.00%) low mild 9 (9.00%) high mild 1 (1.00%) high severe Benchmarking cache_size_impact/lookup/100 Benchmarking cache_size_impact/lookup/100: Warming up for 3.0000 s Benchmarking cache_size_impact/lookup/100: Collecting 100 samples in estimated 5.0004 s (55M iterations) Benchmarking cache_size_impact/lookup/100: Analyzing cache_size_impact/lookup/100 time: [87.281 ns 88.163 ns 89.148 ns] Found 6 outliers among 100 measurements (6.00%) 5 (5.00%) high mild 1 (1.00%) high severe Benchmarking cache_size_impact/lookup/1000 Benchmarking cache_size_impact/lookup/1000: Warming up for 3.0000 s Benchmarking cache_size_impact/lookup/1000: Collecting 100 samples in estimated 5.0003 s (53M iterations) Benchmarking cache_size_impact/lookup/1000: Analyzing cache_size_impact/lookup/1000 time: [91.218 ns 92.550 ns 94.154 ns] Found 11 outliers among 100 measurements (11.00%) 2 (2.00%) low mild 2 (2.00%) high mild 7 (7.00%) high severe Benchmarking cache_size_impact/lookup/10000 Benchmarking cache_size_impact/lookup/10000: Warming up for 3.0000 s Benchmarking cache_size_impact/lookup/10000: Collecting 100 samples in estimated 5.0003 s (55M iterations) Benchmarking cache_size_impact/lookup/10000: Analyzing cache_size_impact/lookup/10000 time: [85.758 ns 87.278 ns 89.084 ns] Found 8 outliers among 100 measurements (8.00%) 5 (5.00%) high mild 3 (3.00%) high severe Benchmarking cache_size_impact/lookup/100000 Benchmarking cache_size_impact/lookup/100000: Warming up for 3.0000 s Benchmarking cache_size_impact/lookup/100000: Collecting 100 samples in estimated 5.0002 s (49M iterations) Benchmarking cache_size_impact/lookup/100000: Analyzing cache_size_impact/lookup/100000 time: [93.926 ns 94.785 ns 95.830 ns] Found 4 outliers among 100 measurements (4.00%) 2 (2.00%) high mild 2 (2.00%) high severe Benchmarking concurrent_cache_access Benchmarking concurrent_cache_access: Warming up for 3.0000 s Benchmarking concurrent_cache_access: Collecting 100 samples in estimated 5.0001 s (47M iterations) Benchmarking concurrent_cache_access: Analyzing concurrent_cache_access time: [97.408 ns 99.299 ns 101.48 ns] Found 17 outliers among 100 measurements (17.00%) 10 (10.00%) low mild 5 (5.00%) high mild 2 (2.00%) high severe Benchmarking mixed_revocation_pattern Benchmarking mixed_revocation_pattern: Warming up for 3.0000 s Benchmarking mixed_revocation_pattern: Collecting 100 samples in estimated 5.0004 s (47M iterations) Benchmarking mixed_revocation_pattern: Analyzing mixed_revocation_pattern time: [102.40 ns 103.82 ns 105.44 ns] Found 10 outliers among 100 measurements (10.00%) 2 (2.00%) high mild 8 (8.00%) high severe Benchmarking cache_vs_no_cache/no_cache_direct_redis Benchmarking cache_vs_no_cache/no_cache_direct_redis: Warming up for 3.0000 s Benchmarking cache_vs_no_cache/no_cache_direct_redis: Collecting 100 samples in estimated 5.7476 s (10k iterations) Benchmarking cache_vs_no_cache/no_cache_direct_redis: Analyzing cache_vs_no_cache/no_cache_direct_redis time: [570.19 µs 578.86 µs 590.35 µs] Found 9 outliers among 100 measurements (9.00%) 2 (2.00%) high mild 7 (7.00%) high severe Benchmarking cache_vs_no_cache/with_cache_95pct_hits Benchmarking cache_vs_no_cache/with_cache_95pct_hits: Warming up for 3.0000 s Benchmarking cache_vs_no_cache/with_cache_95pct_hits: Collecting 100 samples in estimated 5.0009 s (22M iterations) Benchmarking cache_vs_no_cache/with_cache_95pct_hits: Analyzing cache_vs_no_cache/with_cache_95pct_hits time: [203.51 ns 214.28 ns 226.45 ns] Found 17 outliers among 100 measurements (17.00%) 1 (1.00%) high mild 16 (16.00%) high severe Benchmarking cache_entry_insertion Benchmarking cache_entry_insertion: Warming up for 3.0000 s Benchmarking cache_entry_insertion: Collecting 100 samples in estimated 5.0004 s (6.3M iterations) Benchmarking cache_entry_insertion: Analyzing cache_entry_insertion time: [702.73 ns 767.77 ns 838.63 ns] Found 15 outliers among 100 measurements (15.00%) 3 (3.00%) high mild 12 (12.00%) high severe Benchmarking production_workload_simulation Benchmarking production_workload_simulation: Warming up for 3.0000 s Benchmarking production_workload_simulation: Collecting 100 samples in estimated 5.0324 s (323k iterations) Benchmarking production_workload_simulation: Analyzing production_workload_simulation time: [452.51 ns 514.73 ns 579.77 ns] Found 12 outliers among 100 measurements (12.00%) 9 (9.00%) high mild 3 (3.00%) high severe Production workload stats: 578790 hits, 7553 misses, 98.71% hit rate