tgoop.com/golang_digest/70
Last Update:
Clean Env - минималистичная библиотека для работы с конфигурацией
https://github.com/ilyakaznacheev/cleanenv
Чаще всего для конфигурации в Go используют spf13/viper, наверняка вы о нём слышали.
Но если вам хочется минималистичности и простоты, Clean Env вам понравится. Тут нет ничего лишнего, а значит легко разобраться, сложно сломать. При этом, всё необходимое тут имеется, в том числе поддержка популярных форматов конфига: yaml, json, toml, env.
Особенно мне понравилась работа с тегами структуры, в которую будет парситься конфиг:
- env-default
- дефолтные значения для параметров
- yaml
/ json
/ env
- имена параметров для парсинге из разных источников
- env-required
- отмечает поле как обязательное
- и др.
У Viper не все из этого есть, а для задания имени параметров нужно использовать неочевидный тег - mapstructure
.
————
Кстати, если вам вдруг не понравился ни Viper, ни Clean Env, можете посмотреть в сторону koanf, тоже интересный и популярный вариант.
————
#package #configuration