Skip to content
xandwrpPublic

About

A Rust command-line toolkit for Godot 4 projects.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

gdkit

Godot 4 development utility belt, rebuilt as three crates. The v0.1.0 workspace contains implemented features alongside todo!() scaffolds and ignored acceptance tests.

Landed: check end to end, including --static-only, --slice, --baseline, and --script, with JSON and human reports. Engine validation imports a clean disposable copy, scans scripts, audits the class cache, and loads resources from a full-file inventory using the union of editor and runtime loader registries. Source assets are copied; the source .godot cache is not seeded into the copy. API-cache diagnostic enrichment remains deferred.

Also landed: config keeps machine-wide defaults (gdkit config set godot <path>), and init writes a gdkit.toml that follows that default or, with --godot, pins the project's own engine. api answers class, member, global, and search queries from the configured editor's own API dump, class reference, and --gdscript-docs output for the project's scripts, cached per engine and script content; project GDExtension classes are not covered yet. doctor explains which engine a project resolves to and why, what it overrides, cache health, the warning policy, and anything that would stop an engine command from starting.

Offline lookups: refs lists everything that references a file or directory (scenes, resources, scripts including path strings, and project.godot), marks which references survive a move through a uid, and names the sidecars to move. settings gives typed views of input actions (with Godot's built-in ui_* actions), layer names, window settings, the main scene, and raw keys; autoloads lists autoloads in initialization order. net maps source RPCs, candidate receivers, authority uses and authored replication nodes, with --explain, deterministic JSON and explicit coverage limits. It is entirely offline and read-only; source candidates do not prove runtime compatibility. See net scope and tests.

Exit codes: 0 passed, 1 failed or incomplete (including check-phase timeouts), 2 tool/startup, engine-probe, or configuration errors. A baseline permits engine validation of carried static findings but does not erase their failed verdict; new static findings block engine phases. Project scripts must call quit before their deadline; the startup marker alone is not success.

Runtime behavior is verified on Linux. macOS shares the POSIX process-group implementation but is not runtime-verified here. Windows has direct-child cleanup; Job objects are out of scope, and Windows process-tree cleanup is not guaranteed.

Crate Job Depends on
crates/gdview Read-only project introspection. No engine, no writes. nothing
crates/gdproject A project bound to its engine: config, probe, process supervision, harness protocol, every engine-backed operation. gdview
gdkit (repo root) The CLI. Args, rendering, exit codes. No logic. both

The intended command surface is described in docs/AGENT_USE.md: check (static then engine, --slice, --script, --baseline), api, refs, settings, resource, scene-tree, autoloads, net, import, run, init, config, doctor. Nothing else is stubbed, on purpose.

Start with docs/ARCHITECTURE.md: the rules each crate enforces, the call flow for every command, the harness protocol, and the test matrix. Each module's doc comment lists its acceptance tests by name under crates/*/tests/ and tests/. Implemented module gates have completed tests; this does not mean every workspace scaffold is done. Real-engine tests remain opt-in, and explicitly deferred tests are distinct from completed gates.

cargo install --path .                                 # installs the gdkit binary
cargo check --workspace --all-targets --all-features
cargo test  --workspace --all-features                 # implemented offline tests; scaffolds ignored
# With GDKIT_TEST_GODOT set to a real engine executable:
cargo test -p gdproject --all-features --test check real_engine_ -- --ignored

Engine-facing offline tests use per-executable fake-engine scenario/log sidecars. The CLI tests automatically build fake-godot once with an isolated, offline Cargo build; no manual helper build or pre-existing sibling binary is required.

legacy/ holds v0.1 unchanged, outside the workspace, for reference while porting: the Variant codec in legacy/src/resource.gd, the report contract in legacy/src/report.rs, and the gdview syntax frontend pinned in legacy/Cargo.toml.

Dual-licensed under MIT or Apache-2.0. See THIRD-PARTY-NOTICES.md.

About

A Rust command-line toolkit for Godot 4 projects.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages