| Crates.io | adsb-anomaly |
| lib.rs | adsb-anomaly |
| version | 0.2.2 |
| created_at | 2025-08-11 05:18:22.778635+00 |
| updated_at | 2025-08-11 05:18:22.778635+00 |
| description | A sophisticated real-time anomaly detection system for ADS-B aircraft data with multi-tier detection algorithms, real-time web dashboard, and production-grade architecture built in Rust |
| homepage | https://github.com/harperreed/adsb-anomaly-detection |
| repository | https://github.com/harperreed/adsb-anomaly-detection |
| max_upload_size | |
| id | 1789633 |
| size | 668,803 |
A sophisticated real-time anomaly detection system for ADS-B (Automatic Dependent Surveillance-Broadcast) aircraft data, built in Rust with advanced multi-tier detection algorithms and production-grade architecture.
This system monitors aircraft transponder data from PiAware/dump1090 installations to detect potentially suspicious or anomalous aircraft behavior in real-time. It features:
π― Multi-Tier Anomaly Detection
π Production-Ready Architecture
π§ Enterprise Features
git clone https://github.com/harperreed/adsb-anomaly-detection
cd adsb-anomaly-detection
cp config.example.toml config.toml
# Edit config.toml with your PiAware URL and preferences
cargo run --release
The system uses a hierarchical configuration system:
File (config.toml) β Environment Variables β CLI Arguments
Key configuration sections:
[adsb]
piaware_url = "http://192.168.1.100:8080/data/aircraft.json"
poll_interval_ms = 1000
[database]
path = "adsb.db"
wal_mode = true
[analysis]
max_messages_per_second = 100.0 # Temporal anomaly threshold
suspicious_rssi_units = -20.0 # Signal strength threshold
suspicious_callsigns = ["TEST.*", "FAKE.*"] # Regex patterns
[web]
port = 8080
dashboard_title = "ADS-B Anomaly Monitor"
export ADSB_ADSB__PIAWARE_URL="http://your-piaware:8080/data/aircraft.json"
export ADSB_WEB__PORT="8080"
export ADSB_DATABASE__PATH="/var/adsb/aircraft.db"
# Basic usage
cargo run --release
# Override configuration
cargo run --release -- --port 9090 --db-path /tmp/adsb.db --log-level debug
# Production deployment
RUST_LOG=info cargo run --release -- --config /etc/adsb/config.toml
REST API (JSON responses):
GET /api/sessions - List active aircraft sessionsGET /api/aircraft/{hex}/observations - Aircraft observation historyGET /api/alerts - Anomaly alerts with filteringGET /healthz - Health checkGET /metrics - Prometheus metricsWebSocket Streams:
ws://localhost:8080/ws/aircraft - Real-time aircraft updatesws://localhost:8080/ws/alerts - Live anomaly alertsDashboard Pages:
/ - Interactive dashboard with live map/aircraft/{hex} - Individual aircraft details/alerts - Anomaly alert stream/sessions - Active aircraft sessionsβββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β PiAware/ β β Ingestion β β Detection β
β dump1090-fa βββββΆβ Service βββββΆβ Engine β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β SQLite β β Alert β
β Database β β Manager β
βββββββββββββββββββ βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β Web Dashboard β β WebSocket β
β & REST API β β Streams β
βββββββββββββββββββ βββββββββββββββββββ
Core Language: Rust 2021 Edition with async/await Web Framework: Axum with Tower middleware Database: SQLite with SQLx (async ORM) Templates: Askama (compile-time HTML templates) Concurrency: Tokio async runtime Monitoring: Prometheus metrics, tracing for logs Configuration: TOML + environment variables + CLI args
[dependencies]
tokio = { version = "1", features = ["full"] } # Async runtime
axum = { version = "0.7", features = ["ws"] } # Web framework
sqlx = { version = "0.7", features = ["sqlite"] } # Async database
serde = { version = "1", features = ["derive"] } # Serialization
askama = { version = "0.12", features = ["with-axum"] } # Templates
reqwest = { version = "0.12", features = ["json"] } # HTTP client
dashmap = "6.1" # Concurrent HashMap
regex = "1.10" # Pattern matching
prometheus = "0.13" # Metrics export
smartcore = "0.3" # ML algorithms
Throughput:
Scalability:
Database Performance:
Temporal Analysis (Tier 1):
Signal Analysis (Tier 2):
Identity Validation (Tier 3):
Behavioral Physics (Tier 4):
ML Statistical Analysis (Tier 5):
System Requirements:
Monitoring & Observability:
tracing crateSecurity Features:
Built with β€οΈ in Rust | Perfect for aviation enthusiasts, security researchers, and ADS-B monitoring applications! π‘οΈβοΈ