Uma ferramenta de linha de comando e biblioteca Go para consultar e modificar JSON, YAML, TOML, XML, CSV e outros dados estruturados com uma única sintaxe de seleção.
caarlos0/env
Biblioteca Go sem dependências que converte variáveis de ambiente em structs tipadas usando tags de struct.
- Estrelas
- 6,357
- Forks
- 298
- Issues abertas
- 44
- Último commit
- há 3 dias
O que é?
env é uma biblioteca Go para carregar configurações a partir de variáveis de ambiente. Você define uma struct, anota os campos com tags `env` que indicam quais variáveis devem ser lidas e chama Parse ou ParseAs para preencher a struct com valores tipados. Ela não tem dependências externas.
Além dos campos básicos de texto e números, env oferece suporte a durações, URLs, fusos horários, slices e maps com separadores configuráveis, structs aninhadas com prefixos, valores padrão e parsers personalizados para seus próprios tipos. As opções das tags incluem verificações de campos obrigatórios e não vazios, leitura de valores a partir de arquivos, expansão de variáveis e remoção de variáveis após o uso.
A biblioteca está na linha de versões v11, considerada “completa em recursos”, com helpers baseados em generics e opções para alterar os nomes das tags, fornecer uma fonte de ambiente personalizada e interceptar a atribuição de valores.
Recursos principais
- 01Converte variáveis de ambiente em structs usando tags de struct `env`.
- 02Oferece suporte integrado a tipos numéricos, string, bool, duração, URL e fuso horário.
- 03Lida com slices, maps, ponteiros e structs aninhadas com prefixos.
- 04Oferece opções para campos obrigatórios e não vazios, leitura de arquivos e expansão de variáveis.
- 05Permite criar parsers personalizados para tipos definidos pelo usuário.
Casos de uso
- Carregar configurações de aplicações a partir de variáveis de ambiente em um serviço Go.
- Validar, na inicialização, se as configurações obrigatórias estão presentes.
- Ler configurações de contêineres ou no estilo 12-factor em structs Go tipadas.
Início rápido
- 1
Instale a biblioteca com go get
go get github.com/caarlos0/env/v11 - 2
Defina uma struct com tags env e chame env.Parse para carregar as variáveis de ambiente
Antes de usar
- Campos não exportados da struct são ignorados por design.
Tópicos
Perguntas frequentes
- O que é env?
- Biblioteca Go sem dependências que converte variáveis de ambiente em structs tipadas usando tags de struct. env é uma biblioteca Go para carregar configurações a partir de variáveis de ambiente. Você define uma struct, anota os campos com tags `env` que indicam quais variáveis devem ser lidas e chama Parse ou ParseAs para preencher a struct com valores tipados. Ela não tem dependências externas.
- env é gratuito? Qual é a licença?
- env é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- env ainda é mantido?
- Manutenção ativa. O último commit de env foi em 5 de nov. de 2026.
- Para que posso usar env?
- Carregar configurações de aplicações a partir de variáveis de ambiente em um serviço Go. Validar, na inicialização, se as configurações obrigatórias estão presentes. Ler configurações de contêineres ou no estilo 12-factor em structs Go tipadas.
- Como instalar env?
- Instale a biblioteca com go get: go get github.com/caarlos0/env/v11 Defina uma struct com tags env e chame env.Parse para carregar as variáveis de ambiente
- Onde consigo env?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/caarlos0/env
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Gerador visual de configurações do terminal Ghostty, acessível pelo navegador, que exporta um arquivo de configuração enxuto.
Módulo Node.js sem dependências que carrega variáveis de ambiente de um arquivo .env para process.env.
Biblioteca Python que carrega pares chave-valor de um arquivo .env para variáveis de ambiente, seguindo as práticas de aplicativos 12-factor.
Plugin do tmux que adiciona uma barra de status no estilo Powerline, personalizável e composta por segmentos, escrita em puro bash.
Um helper de config-overrides que permite personalizar as configurações do webpack, do Jest e do servidor de desenvolvimento do Create React App sem fazer eject.