🐍 fastgen: Gerador de Microsserviços Cloud Native com FastAPI
Se você trabalha com desenvolvimento Python e precisa criar microsserviços de forma rápida, organizada e preparada para cloud, apresento o fastgen, uma ferramenta que acelera esse processo com poucos comandos.
Inspirado no Quarkus (para Java), o fastgen traz a mesma praticidade para o mundo do Python com FastAPI, automatizando a criação de microsserviços, estrutura de projeto, Docker, e integração com o gerenciador uv.
🚀 O que é o fastgen?
O fastgen é uma CLI desenvolvida em Rust que permite criar um monorepo com múltiplos microsserviços FastAPI, com:
- Estrutura compatível com o
uv(substituto moderno do pip/pdm/poetry) - Suporte automático a Docker e docker-compose
- Geração de
.envcom variáveis e portas dinâmicas - Suporte a serviços externos prontos, como Redis, PostgreSQL, RabbitMQ, MongoDB, MinIO e Keycloak
- Suporte a plugins reutilizáveis, como autenticação JWT
🛠️ Por que usar o fastgen?
- Rapidez no setup de projetos novos
- Padronização da arquitetura de microsserviços
- Integração fácil com uv, FastAPI, Docker e ambientes
.env - Pronto para produção ou prototipagem
🧪 Passo a Passo: Como usar
1. Instale os pré-requisitos
# Rust (requerido para rodar o fastgen)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Ou baixe o binário no github do sistema sem a necessidade do rust.
# uv - Gerenciador de pacotes da Astral
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Clone e instale o fastgen
git clonehttps://github.com/DigitalizeBr/fastgen
cd fastgen
cargo build --release
Opcional: Adicione ./target/release/fastgen ao seu PATH.
3. Crie seu primeiro workspace
./target/release/fastgen new-workspace --name minha-plataforma
4. Adicione microsserviços
./target/release/fastgen add-service --name users --to minha-plataforma
./target/release/fastgen add-service --name orders --to minha-plataforma
5. Adicione serviços externos (ex: Redis e PostgreSQL)
./target/release/fastgen add-ext --name redis --to minha-plataforma
./target/release/fastgen add-ext --name postgresql --to minha-plataforma
6. Execute o sistema
cd minha-plataforma
docker compose up
Se quiser rodar um serviço isoladamente com o uv:
cd minha-plataforma/services/users
uv dev
🔌 Plugins Personalizados
Você pode aplicar plugins com funcionalidades específicas aos serviços:
./target/release/fastgen plugin --name auth-jwt --project minha-plataforma/services/users
Isso adiciona arquivos e dependências automaticamente no requirements.txt.
📚 Conclusão
O fastgen nasceu da necessidade de criar microsserviços Python de forma moderna, rápida e pronta para produção. Se você quer padronizar seus projetos FastAPI, acelerar a criação de APIs e já ter Dockerfile e integração com serviços externos prontos, vale muito a pena testar.
📁 O projeto é open source e está disponível em: https://github.com/DigitalizeBr/fastgen

Publicar comentário