Module Drift Engine Documentation

Reference documentation for the engine and tools inside the Drift application. It describes how the code is organized so the source is easier to read. Drift ships as an application, and these modules are not published artifacts.

The modules are core, host, scan, tools, bench, cli and studio. The build-core Gradle build logic, the Android application module and the Xcode project are not documented here.

All modules:

Link copied to clipboard

Benchmark harness. It generates synthetic cases, runs the engine on them and scores the result against known answers.

Link copied to clipboard

The drift command. Each subcommand lives in dev.gmitch215.drift.cli.command and calls into core, host and scan. The installer behind install and uninstall is in cli.install and the web server behind serve is in cli.serve.

Link copied to clipboard

Capsule model, canonical JSON, SHA-256, fixed-point math, and the diagnosis engine built on them. All code is common Kotlin, so every target produces the same bytes.

Link copied to clipboard

Operating system access. Host is the interface the rest of Drift reads facts through, with one implementation per target (JVM, macOS, Linux, Windows, Wasm, and Android and iOS when the mobile targets are enabled) and a fake for tests.

Link copied to clipboard

Probes, toolchain scanners and the atlas. Capture runs them against a Host and builds a capsule. The atlas records probe transcripts, builds the dataset, compares a device against it and carries the classification of each probe.

Link copied to clipboard

Compose Multiplatform interface for working with cases and for browsing the Atlas, for desktop (JVM) and the browser (wasmJs), with Android and iOS builds when the mobile targets are enabled.

Link copied to clipboard

JVM-only maintenance programs: transcript fixture generation, log sanitizing, the probe ladder and rule verification. They support development and are not part of the drift executable. The Playwright scripts for the browser Atlas columns live beside them in tools/browsers.