最近見かけたHaskell library: conferer

Haskell applicationの設定データ(configuration)をロードするためのフレームワークコマンドラインオプション、環境変数、設定ファイルなど異なる情報源(source)からの設定データを統合的にロードできる。

コアのconfererパッケージはかなり依存関係が小さめ。追加のパッケージとしてconferer-yamlconferer-dhallがあり、それぞれの設定ファイルフォーマットをサポートできる。

sourceから読み込んだ設定データはユーザ定義型にパースされる。このユーザ定義型はFromConfig typeclassのinstanceとすればいい。ユーザ定義型がGenericのinstanceならFromConfigをderiveできる。

さらに、warpやhedisといったよく使いがちなコンポーネントの設定データ型については個別のパッケージでFromConfigのorphan instanceが提供されている。