A downloadable tool

Download NowName your own price

A dependency graph analyzer for Godot 4 projects, with architecture rules that you declare yourself.

What it is

broquel reads the scripts and scenes of a Godot project and builds two graphs. The first graph says which file depends on which file. The second graph says how each script touches the scene tree. Then it checks the rules you wrote for your own project, and it reports every violation with the exact place in the code, the rule that fired, and the reason you gave when you wrote that rule.

broquel is not a style linter. It does not care about names, line length or complexity; tools like gdlint already cover that ground, and broquel is built to live next to them, not to replace them.

Why it exists

GDScript has no modules, no packages and no visibility. A class_name line publishes a global identifier for the whole project. An autoload is global by construction. Nothing in the language stops your core logic from reaching into your user interface code; the project compiles, runs and ships anyway.

Two lines are enough to break an architecture:

# src/core/combat.gd: core logic should not know the UI exists. 
const Hud = preload("res://src/ui/hud.gd") 

Godot is happy with this line. Your future self is not. broquel turns it into a finding you can see, discuss and gate on.


What you get

  • Findings with the exact position, the rule id, and the reason you wrote when you declared the rule.
  • A portrait of your architecture with zero configuration: run the tool once and see cycles, orphan scripts, the most depended on files, autoload coupling and more.
  • A gate for your CI: exit code 0 when clean, 1 on violations, 2 on usage or configuration errors.
  • A painless way to adopt the tool on an old project: a baseline that accepts the current debt and only fails on new violations.

Check it out in the project repository page: https://codeberg.org/Hebranauta_Floss/gd-broquel


Download

Download NowName your own price

Click download now to get access to the following files:

Releases crates.io
External