use cynapse::{Monitor, TamperResponse, WhitelistPolicy};
use std::time::Duration;
fn main() {
env_logger::init();
println!("🧠Cynapse Server Daemon Demo");
println!("==============================\n");
let monitor = Monitor::builder()
.interval(Duration::from_secs(2))
.enable_merkle_trees(true)
.adaptive_sampling(true)
.whitelist_jit_regions(WhitelistPolicy::ByPattern(vec![
".jit".to_string(),
".v8".to_string(),
"java".to_string(),
]))
.enable_forensics(true)
.response(TamperResponse::Alert)
.on_tamper(|segment, info| {
log::error!("🚨 Integrity violation detected!");
log::error!(" Segment: {}", segment.name);
log::error!(
" Address range: 0x{:016x} - 0x{:016x}",
segment.start,
segment.end
);
log::error!(" Size: {} bytes", segment.size());
log::error!(" Timestamp: {:?}", info.timestamp);
})
.build()
.expect("Failed to initialize monitor");
println!("✓ Advanced monitor configured:");
println!(" • Merkle tree optimization: enabled");
println!(" • Adaptive sampling: enabled");
println!(" • JIT whitelisting: enabled");
println!(" • Forensics: enabled");
println!(" • Response: Alert\n");
println!("✓ Starting monitoring...\n");
let handle = monitor.start();
println!("Server running. Press Ctrl+C to stop.\n");
let mut counter = 0;
loop {
std::thread::sleep(Duration::from_secs(5));
counter += 1;
println!("[{}] Server health check: OK", counter);
if counter >= 12 {
break;
}
}
println!("\n✓ Shutting down gracefully...");
handle.stop().expect("Failed to stop monitor");
println!("✓ Server stopped");
}