Haskell中是否有典型的配置或属性文件格式和库?

men*_*ics 15 haskell configuration-files

我需要一组键值对来从文件中读取配置.我尝试在Data.Map上使用show,它看起来并不像我想要的那样.这似乎是许多其他人可能已经做过的事情所以我想知道是否有标准的方法来做它以及使用什么库.

Tho*_*son 16

  1. hackage.
  2. 点击" 包裹 "
  3. 搜索"配置".
  4. 注意ConfigFile(TH),EEConfigtconfig.
  5. 阅读Haddock文档
  6. 选择一对并执行您的任务.
  7. 关于您的发现的博客,以便我们其他人可以从您新发现的专业知识中学习(谢谢!).

编辑:我最近使用配置器 - 这很容易.我建议你尝试一下!

(是的,是的.如果我接受了我自己的建议,我会为你们做一个博客)

  • 它变得更容易. (6认同)
  • "阅读文档" - 我发现学习haskell时非常困难. (4认同)

Emm*_*ery 6

Hackage上的配置类别应列出所有相关库:http://hackage.haskell.org/packages/#cat:Configuration

我现在自己研究了这个话题,我的结论是:

  • 配置器非常好,但它目前仅适用于用户编辑的配置.应用程序仅读取配置,无法修改它.因此,它更适用于服务器端应用程序.
  • tconfig 有一个简单的API,看起来像我想要的,也许有点原始,直到我意识到它没有维护,并且一些非常重要的使用应用程序的提交应用于github但hackage包没有更新

其他解决方案看起来并不适合我,我不喜欢API,但每个应用程序(和品味)都不同.

我认为使用JSON不是一个好的解决方案,因为至少在新版本中添加新设置时使用Aeson,旧版JSON将不会加载以前版本中的新成员.此外,我觉得这个解决方案有点冗长.

我的研究结论是我编写了自己的库app-settings,它的目标是键值,读写,尽可能使用succint和类型安全的API.你也可以在我给出的配置类别的hackage链接中找到它.

总而言之,我认为配置程序是只读配置的标准(它也非常强大,例如,您可以使用导入拆分配置文件).对于读写,有许多小型库,有些是未维护的,我认为没有真正的标准.

更新2018年一定要看看dhall