No description
  • C++ 90.6%
  • Python 4.9%
  • CMake 3.4%
  • Shell 1.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tim Janke e684d5a178
Some checks failed
CI / package (ubuntu-latest) (push) Has been skipped
CI / style (clang-format + clang-tidy) (push) Failing after 10s
CI / asan (Linux) (push) Failing after 10s
CI / build-test (ubuntu-latest) (push) Failing after 14s
CI / package (windows-latest) (push) Has been cancelled
CI / package (macos-latest) (push) Has been cancelled
CI / build-test (windows-latest) (push) Has been cancelled
CI / build-test (macos-latest) (push) Has been cancelled
(proto): Track the shared flyg proto repo as a submodule
The schemas are the contract with the backend, so they now live in
ssh://git@git.janke.biz:2222/flyg/proto.git and are consumed here as the
proto/ submodule. Schema changes are made upstream and land as a pointer
bump. The generate call moved out of proto/CMakeLists.txt, which cannot
live inside the submodule, into cmake/FlygProto.cmake.
2026-08-03 15:52:42 +02:00
.github/workflows 👷 (ci): Publish packaged plugin zips on tags 2026-07-23 12:13:29 +02:00
cmake (proto): Track the shared flyg proto repo as a submodule 2026-08-03 15:52:42 +02:00
core 🐛 (core/order): Re-actuate when an order's fuel/payload change under the same id 2026-07-26 16:27:12 +02:00
docs (proto): Track the shared flyg proto repo as a submodule 2026-08-03 15:52:42 +02:00
proto@826b704855 (proto): Track the shared flyg proto repo as a submodule 2026-08-03 15:52:42 +02:00
src 🐛 (plugin): Queue pending mass writes so fuel and payload both apply 2026-07-26 16:10:12 +02:00
test 🐛 (core/order): Re-actuate when an order's fuel/payload change under the same id 2026-07-26 16:27:12 +02:00
third_party (deps): Add IXWebSocket submodule 2026-07-23 10:43:00 +02:00
tools (mock-server): Complete orders only for the linked flight in the required aircraft 2026-07-26 15:51:54 +02:00
.clang-format 🎉 Start of the re-implementation of the X-Plane 12 plugin 2026-07-21 14:40:44 +02:00
.clang-format-ignore 🎉 Start of the re-implementation of the X-Plane 12 plugin 2026-07-21 14:40:44 +02:00
.clang-tidy 🎉 Start of the re-implementation of the X-Plane 12 plugin 2026-07-21 14:40:44 +02:00
.editorconfig 🔧 (repo): Add repository scaffolding 2026-07-21 15:01:31 +02:00
.gitignore (mock-server): Add Python server with device-flow endpoints 2026-07-23 10:17:00 +02:00
.gitmodules (proto): Track the shared flyg proto repo as a submodule 2026-08-03 15:52:42 +02:00
CHANGELOG.md 📝 (changelog): Remove the content of the current changelog 2026-08-02 18:18:00 +02:00
CLAUDE.md (proto): Track the shared flyg proto repo as a submodule 2026-08-03 15:52:42 +02:00
CMakeLists.txt (proto): Track the shared flyg proto repo as a submodule 2026-08-03 15:52:42 +02:00
CMakePresets.json 👷 (ci): Add CI workflow for build, test and style 2026-07-21 15:34:48 +02:00
README.md 📝 (docs): Add install documentation and complete README 2026-07-23 12:11:48 +02:00

flyg — X-Plane 12 plugin

build

flyg is the in-simulator client of the flyg platform (virtual aircraft rental/ownership, jobs, economy). It records verifiable flight tracks, streams them live with a crash-safe offline buffer, and applies platform actions (such as purchased fuel) inside X-Plane 12.

Status: pre-alpha.

What it does

  • Records every flight to a crash-safe, append-only journal on disk — no flight is lost to a network drop, backend outage, or sim crash.
  • Streams live over a WebSocket with ack-based trimming, falling back to HTTPS and resuming cleanly after interruptions.
  • Derives flight intelligence — phases (taxi → takeoff → … → shutdown), touchdown rate, and anomaly flags (pause, time acceleration, teleport, fuel jumps, replay, clock drift) — so nothing about a flight is a surprise.
  • Applies platform fuel while parked (engines off, brake set), verifying the write and flagging aircraft that ignore it.
  • Pairs to your account with a device-code flow, all from a minimal in-sim status window; everything else lives on the website.

Milestones

Milestone Scope Status
M0 Skeleton: build, schemas, CI, style gate, ImGui window
M1 Recorder: sampler → crash-safe journal, trackdump
M2 Auth: device-code flow + mock server
M3 Live tracking: WS streaming + offline re-upload
M4 Flight intelligence: phases, events, anomalies
M5 Fuel + jobs: set_fuel, job display
M6 Release readiness: update check, docs, packaging

Build

cmake --preset dev && cmake --build --preset dev   # -> build/dev/flyg/lin_x64/flyg.xpl
ctest --preset dev

See docs/INSTALL.md to install and pair, and to develop against the bundled mock backend.

Documentation

Contributing

First-party C++ follows docs/guides/cpp-style.md, enforced by ./tools/check-style.sh (clang-format is the hard gate). Commits use :gitmoji: (scope): Imperative subject with no trailers. Run the full green check — configure + build + ctest + check-style.sh — before every commit.