Saltar al contenido principal
Con bloques de construcción modulares, comprobables y mantenibles, lib-commons acelera el desarrollo mientras promueve la estandarización. Desde conectores de base de datos hasta herramientas de observabilidad, le da a tus servicios una base sólida sobre la cual construir.

Características clave

Componentes principales

  • Gestión de aplicaciones – gestiona el ciclo de vida de tu servicio con app.go.
  • Utilidades de contexto – registra, rastrea y propaga metadatos de solicitud con context.go.
  • Manejo de errores – estandariza errores de negocio y mapéalos 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 helpers reutilizables.

Mensajería

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

Observabilidad

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

Utilidades

  • Helpers de cadenas – funciones comunes de manipulación de cadenas.
  • Conversión de tipos – convierte de forma segura entre tipos.
  • Helpers de tiempo – utilidades de fecha y hora.
  • Helpers de SO – herramientas para interactuar con el sistema operativo.
  • Utilidades de punteros – simplifica el trabajo con tipos de puntero.
  • Procesamiento de transacciones – valida y maneja flujos de transacciones financieras.

Comenzando

Requisitos

1. Instalar la lib

go get github.com/LerianStudio/lib-commons

2. Agregar la lib a tu proyecto

Para usar lib-commons, inclúyela en la gestión de dependencias de tu proyecto. Luego, importa solo los subpaquetes que necesites, manteniendo tus dependencias ligeras y tu 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 te 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 – enriquece flujos de solicitud con logging, rastreo y propagación de metadatos.
  • Manejo de errores – garantiza validación consistente y respuestas de error entre servicios.
  • Conectores de base de datos – gestiona conexiones y consultas para PostgreSQL, MongoDB y Redis.
  • Mensajería – interactúa con RabbitMQ usando helpers ergonómicos.
  • Observabilidad – integraciones integradas para logging (Zap), métricas y rastreo (OpenTelemetry).
  • Utilidades – herramientas para trabajar con cadenas, tipos, tiempo, SO, punteros, transacciones, comandos shell y redes.
ConsejoPara la lista completa de herramientas y funciones disponibles, consulta la documentación de referencia Go.

Contribuir

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

Licencia

  • Apache 2.0 - consulta la página LICENSE para detalles.