Pular para o conteúdo principal
lib-commons é a biblioteca Go da Lerian com ferramentas e componentes compartilhados, construída para ajudar você a criar microsserviços resilientes e consistentes em todo o nosso ecossistema. Ela centraliza a lógica comum para que você possa avançar mais rápido e focar no que torna seu serviço único. Com blocos de construção modulares, testáveis e manuteníveis, a lib-commons acelera o desenvolvimento enquanto promove a padronização. De conectores de banco de dados a ferramentas de observabilidade, ela dá aos seus serviços uma base sólida para construir.

Funcionalidades principais


Componentes core

  • Gerenciamento de aplicação – gerencie o ciclo de vida do seu serviço com app.go.
  • Utilitários de contexto – registre logs, trace e propague metadados de requisição com context.go.
  • Tratamento de erros – padronize erros de negócio e mapeie-os para respostas de API consistentes com errors.go.

Conectores de banco de dados

  • PostgreSQL – configuração de conexão, suporte a migrations e funções auxiliares.
  • MongoDB – configuração simplificada e operações comuns.
  • Redis – implementação de client e helpers reutilizáveis.

Mensageria

  • RabbitMQ – client pronto para uso para publicação, consumo e gerenciamento de filas e exchanges.

Observabilidade

  • Logging – interface de logging plugável com múltiplas implementações.
  • Ofuscação de logs – use a variável de ambiente SECURE_LOG_FIELDS para ocultar campos sensíveis dos logs.
  • OpenTelemetry – suporte integrado para tracing, métricas e logs.
  • Zap – suporte nativo para logging estruturado com Zap da Uber.

Utilitários

  • Helpers de string – funções comuns de manipulação de strings.
  • Conversão de tipos – converta entre tipos de forma segura.
  • Helpers de tempo – utilitários de data e hora.
  • Helpers de OS – ferramentas para interação com o sistema operacional.
  • Utilitários de ponteiro – simplifique o trabalho com tipos ponteiro.
  • Processamento de transações – valide e processe fluxos de transações financeiras.

Primeiros passos


Requisitos

1. Instale a lib

go get github.com/LerianStudio/lib-commons

2. Adicione a lib ao seu projeto

Para usar a lib-commons, inclua-a no gerenciamento de dependências do seu projeto. Em seguida, importe apenas os subpacotes que você precisa, mantendo suas dependências enxutas e seu código limpo. Exemplo:
import (
    contextutils "github.com/LerianStudio/lib-commons/commons/context"
    logutils "github.com/LerianStudio/lib-commons/commons/log"
    tx "github.com/LerianStudio/lib-commons/commons/transaction"
)
Isso dá acesso direto a ferramentas como ContextWithLogger, WithFields ou ValidateTransactionRequest, sem trazer código desnecessário.

Módulo commons


O módulo commons é o coração da biblioteca. Ele fornece utilitários simplificados e reutilizáveis para construir serviços Go robustos na Lerian. Ele inclui:
  • Gerenciamento de contexto – enriqueça fluxos de requisição com logging, tracing e propagação de metadados.
  • Tratamento de erros – garanta validação e respostas de erro consistentes entre serviços.
  • Conectores de banco de dados – gerencie conexões e queries para PostgreSQL, MongoDB e Redis.
  • Mensageria – interaja com RabbitMQ usando helpers ergonômicos.
  • Observabilidade – integrações nativas para logging (Zap), métricas e tracing (OpenTelemetry).
  • Utilitários – ferramentas para trabalhar com strings, tipos, tempo, OS, ponteiros, transações, comandos shell e rede.
Para a lista completa de ferramentas e funções disponíveis, confira a documentação de referência Go.

Contribuindo


Contribuições são bem-vindas! Se você escreveu lógica que poderia beneficiar outros serviços, vamos trazê-la para a lib-commons. Apenas certifique-se de que seu código é idiomático e coberto por testes.

Licença


  • Elastic License 2.0 - consulte a página de LICENSE para detalhes.