[Haskell-cafe] [ANN] etc-0.0.0 Declarative configuration spec for Haskell projects

Román González romanandreg at gmail.com
Fri Apr 7 17:43:55 UTC 2017


> Why is it configured in YAML? When I tried to make a similar library, I
thought it was a monadic DSL in Haskell that matches the need best.
> I'm interested in the reason!

Hey Yuji,

The reason I picked JSON/YAML to declare the spec to be able to
re-implement it in other languages we use at my current work, so the
abstraction is shared among many different languages. There could be a
potential to have a Builder DSL in Haskell to create the ConfigSpec record,
however this puts your app config on *codeland* rather than *dataland*
which may remove some flexibility.

Thanks for the feedback, and hope you find the library useful.

On Thu, Apr 6, 2017 at 5:28 PM Yuji Yamamoto <whosekiteneverfly at gmail.com>
wrote:

> Awesome!
> This may be the one I've wanted for a long time.
> As you I've often felt it's very tedious to manage the source of
> configurations (from the file? CLI argument? etc.).
>
> I'm going to read it in detail later, but I have one question after the
> first look:
> Why is it configured in YAML? When I tried to make a similar library, I
> thought it was a monadic DSL in Haskell that matches the need best.
> I'm interested in the reason!
>
> Thanks for the interesting library!
>
> 2017/04/07 午前3:56 "Román González" <romanandreg at gmail.com>:
>
> Is my pleasure to announce a new library for managing configuration values
> on Haskell projects.
>
> Some features:
>
> * Have a versioned spec of all values your application can accept
>
> * Provides an API for gathering values from multiple sources (files,
> overwrite files, cli arguments, environment variables) and then composing
> them into a single configuration map
>
> * Gives a sane precedence over sources of the configuration value sources
>
> * Provides inspection utilities to understand why the configuration is the
> way it is
>
> * Provides an API that abstracts away the source of configuration values
> and allows easy casting into record types your application or other
> libraries understand
>
> * Supports both configuration files in JSON or YAML (when cabal flags are
> used)
>
> * Dynamically generates CLI inputs from spec configuration file
>
> Any feedback, or comments feel free to create a ticket or send me a tweet
> over at @romanandreg
>
> Cheers.
>
> Roman Gonzalez.-
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170407/f1be8264/attachment.html>


More information about the Haskell-Cafe mailing list