Repolode
caarlos0

caarlos0/env

Una biblioteca de Go sin dependencias que convierte variables de entorno en estructuras tipadas mediante tags de struct.

Estrellas
6,357
Forks
299
Issues abiertos
44
Último commit
ayer

¿Qué es?

env es una biblioteca de Go para cargar configuración desde variables de entorno. Defines un struct, anotas sus campos con tags `env` que indican qué variables leer y llamas a Parse o ParseAs para asignarle valores tipados. No tiene dependencias externas.

Además de campos básicos de texto y números, env admite duraciones, URL, zonas horarias, slices y maps con separadores configurables, structs anidados con prefijos, valores predeterminados y parsers personalizados para tus propios tipos. Las opciones de los tags permiten exigir valores, comprobar que no estén vacíos, leerlos desde archivos, expandir variables y eliminarlas después de usarlas.

La biblioteca está en la línea de versiones v11, considerada «completa en funcionalidades», e incluye helpers basados en generics y opciones para cambiar los nombres de los tags, definir una fuente de entorno personalizada y engancharse al proceso de asignación de valores.

Funciones clave

  • 01Convierte variables de entorno en structs mediante tags `env`.
  • 02Admite tipos integrados numéricos, de texto, bool, duración, URL y zona horaria.
  • 03Gestiona slices, maps, punteros y structs anidados con prefijos.
  • 04Ofrece opciones para exigir valores, comprobar que no estén vacíos, leerlos desde archivos y expandir variables.
  • 05Permite crear parsers personalizados para tipos definidos por el usuario.

Casos de uso

  • Cargar la configuración de una aplicación desde variables de entorno en un servicio de Go.
  • Validar al iniciar que estén presentes las opciones obligatorias.
  • Leer la configuración de contenedores o al estilo de 12-factor y cargarla en structs tipados de Go.

Inicio rápido

  1. 1

    Instala la biblioteca con go get

    go get github.com/caarlos0/env/v11
  2. 2

    Define un struct con etiquetas env y llama a env.Parse para cargar las variables de entorno

Antes de usarlo

  • Los campos no exportados del struct se ignoran por diseño.

Temas

Preguntas frecuentes

¿Qué es env?
Una biblioteca de Go sin dependencias que convierte variables de entorno en estructuras tipadas mediante tags de struct. env es una biblioteca de Go para cargar configuración desde variables de entorno. Defines un struct, anotas sus campos con tags `env` que indican qué variables leer y llamas a Parse o ParseAs para asignarle valores tipados. No tiene dependencias externas.
¿env es gratuito? ¿Qué licencia tiene?
env es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿env sigue mantenido?
Mantenimiento activo. El último commit de env fue el 5 nov 2026.
¿Para qué puedo usar env?
Cargar la configuración de una aplicación desde variables de entorno en un servicio de Go. Validar al iniciar que estén presentes las opciones obligatorias. Leer la configuración de contenedores o al estilo de 12-factor y cargarla en structs tipados de Go.
¿Cómo se instala env?
Instala la biblioteca con go get: go get github.com/caarlos0/env/v11 Define un struct con etiquetas env y llama a env.Parse para cargar las variables de entorno
¿Dónde consigo env?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/caarlos0/env

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados