Repolode
caarlos0

caarlos0/env

Библиотека для Go без внешних зависимостей, которая разбирает переменные окружения и записывает типизированные значения в структуры по тегам.

Звёзды
6,357
Форки
298
Открытые issues
44
Последний коммит
3 дня назад

Что это?

env — библиотека для Go, которая загружает конфигурацию из переменных окружения. Опишите структуру, укажите в тегах `env` имена переменных, которые нужно прочитать, и вызовите Parse или ParseAs, чтобы заполнить структуру типизированными значениями. Внешних зависимостей нет.

Помимо строк и чисел, env поддерживает длительности, URL, часовые пояса, срезы и карты с настраиваемыми разделителями, вложенные структуры с префиксами, значения по умолчанию и пользовательские парсеры для собственных типов. Параметры тегов позволяют задавать обязательные и непустые значения, читать значения из файлов, подставлять переменные и удалять переменные после использования.

Библиотека находится на «полнофункциональной» ветке релизов v11. В ней есть вспомогательные функции на основе generics, а также параметры для смены имён тегов, использования собственного источника переменных окружения и перехвата присваивания значений.

Ключевые возможности

  • 01Разбирает переменные окружения и записывает значения в структуры по тегам `env`.
  • 02Поддерживает встроенные типы чисел, строк, bool, длительностей, URL и часовых поясов.
  • 03Работает со срезами, картами, указателями и вложенными структурами с префиксами.
  • 04Предоставляет параметры для обязательных и непустых значений, чтения из файлов и подстановки переменных.
  • 05Позволяет задавать пользовательские парсеры для собственных типов.

Сценарии использования

  • Загрузка конфигурации Go-сервиса из переменных окружения.
  • Проверка наличия обязательных настроек при запуске.
  • Загрузка конфигурации в стиле контейнеров или 12-factor в типизированные Go-структуры.

Быстрый старт

  1. 1

    Установите библиотеку с помощью go get

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

    Определите struct с тегами env и вызовите env.Parse, чтобы загрузить в него переменные окружения

Что важно знать

  • Неэкспортируемые поля struct намеренно игнорируются.

Темы

Частые вопросы

Что такое env?
Библиотека для Go без внешних зависимостей, которая разбирает переменные окружения и записывает типизированные значения в структуры по тегам. env — библиотека для Go, которая загружает конфигурацию из переменных окружения. Опишите структуру, укажите в тегах `env` имена переменных, которые нужно прочитать, и вызовите Parse или ParseAs, чтобы заполнить структуру типизированными значениями. Внешних зависимостей нет.
env можно использовать бесплатно? Какая у него лицензия?
env распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
env всё ещё поддерживается?
Активно поддерживается. Последний коммит в env — 5 нояб. 2026 г..
Для чего можно использовать env?
Загрузка конфигурации Go-сервиса из переменных окружения. Проверка наличия обязательных настроек при запуске. Загрузка конфигурации в стиле контейнеров или 12-factor в типизированные Go-структуры.
Как установить env?
Установите библиотеку с помощью go get: go get github.com/caarlos0/env/v11 Определите struct с тегами env и вызовите env.Parse, чтобы загрузить в него переменные окружения
Где скачать env?
Исходный код и инструкции по установке — на GitHub: https://github.com/caarlos0/env

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

CLI-инструмент и библиотека Go для поиска и изменения данных в JSON, YAML, TOML, XML, CSV и других структурированных форматах с помощью единого синтаксиса селекторов.

8,1 тыс.+2 за неделю182GoMITОбновлён 5 дней назад