Saltar al contenido principal
lib-commons es la biblioteca Go de herramientas y componentes compartidos de Lerian, construida para ayudarle a crear microservicios resilientes y consistentes en todo nuestro ecosistema. Centraliza la lógica común para que pueda moverse más rápido y enfocarse en lo que hace único a su servicio. Con bloques de construcción modulares, probables y mantenibles, lib-commons acelera el desarrollo mientras promueve la estandarización. Desde conectores de base de datos hasta herramientas de observabilidad, le brinda a sus servicios una base sólida sobre la cual construir.

Características clave


Componentes centrales

  • Gestión de aplicaciones – gestione el ciclo de vida de su servicio con app.go.
  • Utilidades de contexto – registre, rastree y propague metadatos de solicitud con context.go.
  • Manejo de errores – estandarice errores de negocio y mapéelos a respuestas API consistentes con errors.go.

Conectores de base de datos

  • PostgreSQL – configuración de conexión, soporte de migración y funciones auxiliares.
  • MongoDB – configuración simplificada y operaciones comunes.
  • Redis – implementación de cliente y ayudantes reutilizables.

Mensajería

  • RabbitMQ – cliente listo para usar para publicar, consumir y gestionar colas e intercambios.

Observabilidad

  • Registro – una interfaz de registro conectable con múltiples implementaciones.
  • Ofuscación de registros – use la variable de entorno SECURE_LOG_FIELDS para ocultar campos sensibles de los registros.
  • OpenTelemetry – soporte integrado para rastreo, métricas y registros.
  • Zap – soporte integrado para el registro estructurado Zap de Uber.

Utilidades

  • Ayudantes de cadenas – funciones comunes de manipulación de cadenas.
  • Conversión de tipos – convierta de manera segura entre tipos.
  • Ayudantes de tiempo – utilidades de fecha y hora.
  • Ayudantes de SO – herramientas para interactuar con el sistema operativo.
  • Utilidades de punteros – simplifique el trabajo con tipos de punteros.
  • Procesamiento de transacciones – valide y maneje flujos de transacciones financieras.

Comenzando


Requisitos

1. Instalar la biblioteca

go get github.com/LerianStudio/lib-commons

2. Agregar la biblioteca a su proyecto

Para usar lib-commons, inclúyala en la gestión de dependencias de su proyecto. Luego, importe solo los subpaquetes que necesite, manteniendo sus dependencias ligeras y su código base limpio. Ejemplo:
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"
)
Esto le da acceso directo a herramientas como ContextWithLogger, WithFields o ValidateTransactionRequest, sin traer código innecesario.

Módulo commons


El módulo commons es el corazón de la biblioteca. Proporciona utilidades simplificadas y reutilizables para construir servicios Go robustos en Lerian. Incluye:
  • Gestión de contexto – enriquezca los flujos de solicitud con registro, rastreo y propagación de metadatos.
  • Manejo de errores – asegure validación consistente y respuestas de error en todos los servicios.
  • Conectores de base de datos – gestione conexiones y consultas para PostgreSQL, MongoDB y Redis.
  • Mensajería – interactúe con RabbitMQ usando ayudantes ergonómicos.
  • Observabilidad – integraciones integradas para registro (Zap), métricas y rastreo (OpenTelemetry).
  • Utilidades – herramientas para trabajar con cadenas, tipos, tiempo, SO, punteros, transacciones, comandos de shell y redes.
Para la lista completa de herramientas y funciones disponibles, consulte la documentación de referencia de Go.

Contribuir


¡Las contribuciones son bienvenidas! Si ha escrito lógica que podría beneficiar a otros servicios, traigámosla a lib-commons. Solo asegúrese de que su código sea idiomático y esté cubierto por pruebas.

Licencia


  • Apache 2.0 - consulte la página de LICENCIA para más detalles.
I