Traffic To Hud is a small service to ingest GDL-90 ADS‑B and related data sources, decode aviation messages (GDL‑90 / DLAC), and provide a simplified interface for frontends such as StratuxHud.
It is intended both for the StratuxHud distribution image and for local development where developers need to decode and inspect traffic, weather, and supporting data.
Key goals:
- Decode and normalize GDL‑90 messages (ownship, traffic, weather, AIRMET, METAR, etc.)
- Provide simple REST/WebSocket endpoints for UI clients
- Keep the StratuxHud client code simple by moving parsing/networking into this service
High-level modules (found under src/):
data-handling— core parsing, transformations and helperstraffic-manager— central orchestrator for traffic and message routingrest-server— REST and WebSocket endpoints for clientslogging-object— logging helpers and structured loggingclients/— adapters for external sources (GDL90, radar, socket, status, traffic)gdl-messages/— message decoders (e.g.airmet,dlac-decode,basic-report)geography/,locations/— geospatial helpers and datasetstypes/— TypeScript type definitions and shared interfacesweather/— weather-specific parsing and helpers
ASCII class/module diagram (logical):
src/
├─ traffic-manager.ts # orchestrates modules
├─ rest-server.ts # REST/WebSocket API
├─ data-handling.ts # core parsing utilities
├─ logging-object.ts # logging utilities
├─ clients/ # external adapters (gdl90, radar, socket...)
└─ gdl-messages/ # decoders (airmet, metar, text reports...)
If you prefer a PlantUML or Mermaid diagram added to the docs I can add that as docs/architecture.puml.
This repository is shipped inside the StratuxHud image. For development or local use:
- Install dependencies:
npm install- Build (TypeScript compilation or your usual build chain). This project uses TypeScript and has
typescript/gulpin dev dependencies — run your usual build tool. Example (if you usetsc):
npx tscNote: package scripts provide a test target; there is no top-level build script defined in package.json so use tsc or gulp as your environment requires.
Run the test suite configured in package.json:
npm testThe test script runs a set of prebuilt JS tests under build/tests.
- Default use: included and started inside the StratuxHud image — no manual install required.
- Local use: run the built service and connect your client (StratuxHud or a simple test client) to the REST/WebSocket endpoints exposed by
rest-server.
Example (run tests only):
npm testThe repository includes utilities and references for downloading airport/runway and airspace data. Common sources used in development:
- FAA ADDs / NASR datasets (airports, runways, frequencies)
- FAA open data endpoints (see original links in this file for specifics)
Most of the data can be found at https://adds-faa.opendata.arcgis.com/search?collection=Dataset
- Use
madgeto detect circular dependencies and orphans. Example:
madge --orphans .\src\traffic-manager.ts
madge --circular .\src\traffic-manager.tsContributions are welcome. Suggested workflow:
- Fork the repo and create a feature branch
- Add tests for new behavior under
src/testsand/orbuild/tests - Run
npm testlocally - Open a PR against the
releasebranch with a clear description
See the LICENSE file for details.
| Date | Version | Major Changes |
|---|---|---|
| 2025-11-15 | 1.3 | Add weather, airport frequencies, locations, and more. |
| 2020-11-27 | 1.2 | Added new optional fields to support StratuxHUD v2. Package updates. |
| 2020-04-24 | 1.0 Alpha | Moved to own Repo. |