gize-generator
Code generation engine for the Gize framework.
gize-generator turns gize-core specs into files,
safely. It has three responsibilities:
- Render file contents from model/project specs (via
gize-templates,gize-openapiandgize-admin). - Write those files without ever clobbering user code, honoring
--forceand--dry-run(see ADR-012). - Reconcile a project from its manifest (
gize sync) and expose a small plugin API so third parties can add their own generators.
Key types
Plan,FileOp,OpKind: a pure, inspectable description of what will be written (create / skip / update) before anything touches disk.Writer,Options,Report: executes aPlan, applying the safety model and returning a report of what happened.sync: reconciles the tree against the manifest, classifying each file as missing, drifted or unchanged, and creating only what is missing unless--forceis given.register_module,Edit: idempotent registry edits that wire new modules intoapp/mod.rswithout disturbing surrounding code.Generator,GenContext(plugin): the v0 plugin API. A plugin returns aPlan, so it inherits the same safe writer for free (see ADR-008).
The safety model
- Existing files are skipped unless
--forceis passed. --dry-runproduces a fullPlanand writes nothing.- Registry edits and
syncare idempotent: re-running never duplicates or clobbers.
Usage
[]
= "0.7"
Part of the Gize workspace
| Crate | Role |
|---|---|
gize-core |
Domain model, manifest, dialect, conventions |
gize-generator |
Codegen engine: safe writer, sync, plugins (this crate) |
gize-templates |
Templates for the generated code |
gize-db |
Migrations (PostgreSQL and SQLite) |
gize-openapi |
OpenAPI spec generation |
gize-admin |
Admin UI generator |
gize |
The gize CLI |
License
Licensed under either of Apache-2.0 or MIT at your option.