rt-hft-engine 0.1.2

Sub-microsecond HFT engine for vintage hardware
Documentation
//! Simple trader demonstrating RT HFT engine usage

use rt_hft_engine::{HFTEngine, EngineConfig};
use std::error::Error;
use tokio::time::{sleep, Duration};
use tracing::info;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    // Initialize logging
    tracing_subscriber::fmt()
        .with_max_level(tracing::Level::INFO)
        .init();

    info!("🚀 RT HFT Engine - Simple Trader Demo");
    info!("Target: 337ns minimum latency on Dell XPS 13 9350");
    
    // Configure for maximum performance
    let config = EngineConfig::new()
        .cpu_affinity(vec![2, 3])         // Isolate to cores 2-3
        .huge_pages(true)                 // Use 2MB huge pages  
        .realtime_priority(99)            // Maximum RT priority
        .network_optimization(true);       // BBRv3 + WiFi tuning
    
    info!("Configuration: {:?}", config);
    
    // Initialize engine
    let mut engine = HFTEngine::new(config).await?;
    
    info!("Starting engine for 10 seconds...");
    let start_time = std::time::Instant::now();
    
    // Start engine
    tokio::spawn(async move {
        if let Err(e) = engine.start().await {
            eprintln!("Engine error: {}", e);
        }
    });
    
    // Simulate trading activity
    for i in 0..10 {
        sleep(Duration::from_secs(1)).await;
        info!("Trading... {}s elapsed", i + 1);
    }
    
    let elapsed = start_time.elapsed();
    info!("Demo completed in {:?}", elapsed);
    
    Ok(())
}