Arquitetura

O Gize é um workspace Cargo de crates focadas. A CLI orquestra um motor de codegen que escreve Rust idiomático em um layout de projeto convencional.

O workspace

gize-coreEntregue

Modelo de domínio, manifesto (gize.toml), convenções de nomes

gize-generatorEntregue

Motor de codegen: escrita segura de arquivos + planos

gize-templatesEntregue

Os templates do código gerado

gizeEntregue

O binário gize (CLI)

gize-dbEntregue

Migrations via SQLx (PostgreSQL, SQLite e MySQL)

gize-macrosEm andamento

Macros procedurais, mantidas intencionalmente pequenas (ADR-007)

gize-authEntregue

Auth entregue na Alpha: Argon2 + JWT, gerado inline nos projetos (ADR-013)

gize-openapiEntregue

Geração do spec OpenAPI a partir do manifesto (ADR-010)

gize-adminEntregue

Gerador de admin: uma SPA React a partir do manifesto (ADR-006)

gize-testingEntregue

Utilitários de teste para apps geradas

Layout do projeto gerado

gize new produz uma estrutura convencional, com forma de produção:

shop/
├── src/
│   ├── app/
│   │   ├── products/
│   │   │   ├── mod.rs
│   │   │   ├── model.rs
│   │   │   ├── dto.rs
│   │   │   ├── repository.rs
│   │   │   ├── service.rs
│   │   │   ├── handler.rs
│   │   │   ├── routes.rs
│   │   │   └── tests.rs
│   │   └── mod.rs
│   ├── config/
│   ├── database/
│   ├── middleware/
│   ├── router.rs
│   ├── state.rs
│   ├── lib.rs
│   └── main.rs
├── migrations/
├── gize.toml
└── Cargo.toml

Seguro por padrão

Todo gerador suporta --dry-run (prévia, não escreve nada) e --force (sobrescreve), e nunca apaga seus arquivos sem perguntar. Arquivos de registro como app/mod.rs e o router são atualizados de forma idempotente.

Decisões registradas

Toda decisão significativa é registrada como um ADR antes da implementação. Os ADRs 000–012 cobrem o workspace, Axum, SQLx, templates, layout de módulos, macros, config, OpenAPI, migrations e o design da CLI.