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:Tipo | Gera 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 / migrate | Cria uma migration SQL em branco e timestamped (make migration) e aplica as pendentes (migrate). |
gize serve | Roda a app gerada com ergonomia de reload quase automático. |
gize doctor | Diagnostica ambiente/projeto: toolchain, acesso ao banco, sanidade da config. |
gize fmt / check | Formata 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:
- 1gize new shop && cd shop && gize serve sobe um servidor rodando.
- 2gize make app products produz um módulo que compila e está conectado ao router.
- 3gize make crud Product name:String price:i32 active:bool produz endpoints GET/POST/PUT/DELETE funcionais.
- 4gize make migration && gize migrate cria e aplica a tabela products.
- 5Todo arquivo gerado compila, passa em clippy -D warnings e os testes gerados passam.
- 6Rodar um gerador de novo sem --force nunca destrói edições manuais.
- 7Tudo acima é coberto por testes de integração + snapshot na CI.