How shaun-ho/flights works
flights is a real-time Open Glider Network aircraft tracker: it ingests APRS data, parses aircraft reports, maintains buffered tracks, and displays them on a map. The configured pipeline is assembled in src/pipeline/setup.rs; its tasks run under the shared thread manager. The GUI reads the airspace viewer, while disk logging is an optional pipeline capability. Edges reflect the setup and sampled calls; where stage ordering is documented but the connecting code was not shown, the README is cited.
Main entry points: src/task.rs APRS Ingestor · setup.rs Pipeline Setup · conversion.rs Aircraft Parser · src/task.rs Airspace Store Task
Components 16
Application Entry
- CLI and App
src/main.rs
Data Pipeline
- Pipeline Config
src/pipeline/config.rs - Pipeline Setup
src/pipeline/setup.rs - APRS Ingestor
crates/ingestor/src/task.rs - Aircraft Parser
crates/parser/src/conversion.rs - Aircraft Model
crates/parser/src/conversion.rs
Airspace State
- Airspace Store Task
crates/airspace/src/task.rs - Tracks and History
crates/airspace/src/detail.rs - Airspace Viewer
crates/airspace/src/task.rs
Runtime Services
- Thread Manager
crates/core/src/thread_manager.rs - Disk Logging
crates/core/src/logging/logger_registry.rs - Protobuf Types
crates/proto/src/lib.rs
Map Presentation
- Radar Map UI
src/gui/app.rs - OpenStreetMap Tiles
Other components
- Operator
- OGN APRS Service
Connections 19
- Operator → CLI and App: runs
- CLI and App → Pipeline Config: loads settings
- Pipeline Setup → Pipeline Config: uses settings
src/pipeline/setup.rs - Pipeline Setup → APRS Ingestor: constructs
src/pipeline/setup.rs - OGN APRS Service → APRS Ingestor: streams APRS
- APRS Ingestor → Aircraft Parser: forwards packets
- Aircraft Parser → Aircraft Model: converts reports
crates/parser/src/conversion.rs - Aircraft Parser → Airspace Store Task: forwards aircraft
- Airspace Store Task → Tracks and History: updates tracks
crates/airspace/src/task.rs - Airspace Store Task → Airspace Viewer: shares state
crates/airspace/src/task.rs - Pipeline Setup → Thread Manager: registers tasks
src/pipeline/setup.rs - Pipeline Setup → Disk Logging: registers loggers
src/pipeline/setup.rs - APRS Ingestor → Disk Logging: sends packets
crates/ingestor/src/task.rs - Airspace Store Task → Disk Logging: logs updates
crates/airspace/src/task.rs - APRS Ingestor → Protobuf Types: encodes packets
crates/ingestor/src/task.rs - Aircraft Parser → Protobuf Types: converts messages
crates/parser/src/conversion.rs - Radar Map UI → Airspace Viewer: reads tracks
src/gui/app.rs - Radar Map UI → OpenStreetMap Tiles: requests map tiles
src/gui/app.rs - CLI and App → Radar Map UI: launches optionally