CLI-инструмент и библиотека Go для поиска и изменения данных в JSON, YAML, TOML, XML, CSV и других структурированных форматах с помощью единого синтаксиса селекторов.
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
Установите библиотеку с помощью go get
go get github.com/caarlos0/env/v11 - 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 обновляется ежедневно.
Похожие проекты
Веб-генератор конфигурации Ghostty с визуальным редактором и экспортом минимального конфигурационного файла.
Модуль для Node.js без зависимостей: загружает переменные окружения из файла .env в process.env.
Библиотека Python загружает пары «ключ—значение» из файла .env в переменные окружения и следует принципам 12-factor app.
Плагин для tmux с настраиваемой статусной строкой в стиле Powerline, собранной из сегментов и написанной на чистом bash.
Помогает настраивать webpack, Jest и dev-сервер Create React App с помощью config-overrides, не выполняя eject.