Herramienta de línea de comandos y biblioteca Go para consultar y modificar JSON, YAML, TOML, XML, CSV y otros datos estructurados con una sola sintaxis de selectores.
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
Instala la biblioteca con go get
go get github.com/caarlos0/env/v11 - 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
Generador visual de configuraciones web para Ghostty que exporta archivos de configuración mínimos.
Módulo de Node.js sin dependencias que carga variables de entorno de un archivo .env en process.env.
Biblioteca de Python que carga pares clave-valor de un archivo .env en variables de entorno y sigue las prácticas de las aplicaciones de 12 factores.
Un plugin de tmux que añade una barra de estado personalizable al estilo Powerline, compuesta por segmentos y escrita íntegramente en bash.
Un helper de config-overrides para personalizar webpack, Jest y el servidor de desarrollo de Create React App sin hacer eject.