Repolode
caarlos0

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. 1

    Instale a biblioteca com go get

    go get github.com/caarlos0/env/v11
  2. 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