Definição do MVP

O objetivo não é clonar um framework batteries-included. O objetivo é resolver primeiro a maior dor do ecossistema backend em Rust: a produtividade inicial.

Tese do MVP

Um desenvolvedor deve conseguir rodar um punhado de comandos e obter uma API que compila, roda e tem forma de produção, com pelo menos um recurso CRUD completo, tudo em Rust idiomático que ele lê e possui.

No escopo: a CLI

gize new <projeto>Cria um projeto Cargo com o layout padrão, config, pool de banco, router, state e tratamento de erros.
gize make app <nome>Cria um módulo (model, dto, repository, service, handler, routes, error, tests), registra-o e conecta suas rotas.
gize make model <Nome> campo:TipoGera uma struct de model a partir das definições de campos.
gize make crud <Nome>Gera repository, service, DTO, handlers, rotas, validação e testes para um recurso.
gize make migration / migrateCria uma migration SQL em branco e timestamped (make migration) e aplica as pendentes (migrate).
gize serveRoda a app gerada com ergonomia de reload quase automático.
gize doctorDiagnostica ambiente/projeto: toolchain, acesso ao banco, sanidade da config.
gize fmt / checkFormata o projeto com rustfmt e faz lint com clippy (-D warnings).

Explicitamente fora do escopo

  • Admin UI (gize make admin): todo o admin em React/TS.
  • gize sync com reconciliação completa do manifesto.
  • Auth além de um placeholder.
  • Geração de OpenAPI.
  • Sistema de plugins / extensibilidade.
  • Múltiplos bancos: o MVP mira apenas PostgreSQL.
  • Múltiplos frameworks web: o MVP mira apenas Axum.

Definição de Pronto

O MVP está pronto quando, numa máquina limpa com Rust + Postgres:

  1. 1gize new shop && cd shop && gize serve sobe um servidor rodando.
  2. 2gize make app products produz um módulo que compila e está conectado ao router.
  3. 3gize make crud Product name:String price:i32 active:bool produz endpoints GET/POST/PUT/DELETE funcionais.
  4. 4gize make migration && gize migrate cria e aplica a tabela products.
  5. 5Todo arquivo gerado compila, passa em clippy -D warnings e os testes gerados passam.
  6. 6Rodar um gerador de novo sem --force nunca destrói edições manuais.
  7. 7Tudo acima é coberto por testes de integração + snapshot na CI.