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-coreEntregueModelo de domínio, manifesto (gize.toml), convenções de nomes
gize-generatorEntregueMotor de codegen: escrita segura de arquivos + planos
gize-templatesEntregueOs templates do código gerado
gizeEntregueO binário gize (CLI)
gize-dbEntregueMigrations via SQLx (PostgreSQL, SQLite e MySQL)
gize-macrosEm andamentoMacros procedurais, mantidas intencionalmente pequenas (ADR-007)
gize-authEntregueAuth entregue na Alpha: Argon2 + JWT, gerado inline nos projetos (ADR-013)
gize-openapiEntregueGeração do spec OpenAPI a partir do manifesto (ADR-010)
gize-adminEntregueGerador de admin: uma SPA React a partir do manifesto (ADR-006)
gize-testingEntregueUtilitá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.