🐍 fastgen: Gerador de Microsserviços Cloud Native com FastAPI

🐍 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 .env com 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 clone https://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

Prof. Dr. Fabio Gomes Rocha Professor do Programa de Pós-Graduação em Ciências da Computação da UFS Head of Software Arquitecture and Machine Learning - SafeLabs

Publicar comentário