Haskell SQLite包之间的权衡是什么



有许多Haskell SQLite绑定,这对我来说意味着在使用构建/使用SQLite绑定方面有许多不同的权衡。我试着通读了其中许多包的文档,但过了一段时间,它变得模糊了,我无法真正确定选择一个而不是另一个的主要权衡。

在Hackage上搜索发现:

  • 直接sqlite
  • HDBC-sqlite3
  • hdbi-sqlite
  • hsql-sqlite3
  • hsSqlite3
  • 持久性sqlite
  • 最简单sqlite
  • sql简单sqlite
  • 硅铝石
  • sqlite简单
  • sqlite简单类型
  • 绑定-sqlite3

永远不要发送一些"元"SQLite包。haskelldb-hdbc-sqlite3,haskelldb-hdb-sql-sqlite 3,语言sqlite,opaleye sqlite

希望有人能够成功地做到这一点,并能帮助我了解如何选择。

我看了一下上面提到的包。其中一些包是另一个包的依赖项(如opaleye-sqlite和sqlite-simple)依赖于直接sqlite。

因此,让我们首先来看一下提供实际驱动程序的包。它们大多已经过时了。似乎有3个仍然有最近的更新:

  • https://hackage.haskell.org/package/simplest-sqlitehttps://github.com/YoshikuniJujo/test_haskell/tree/master/features/ffi/sqlite3/simplest-sqlite我不会使用它,因为存储库上写着";这只是我的私人Haskell学习/测试库"

  • https://hackage.haskell.org/package/persistent-sqlite这一个是基于直接sqlite(看起来像是直接sqlite的一部分已经分叉)

  • 最后一个是直接sqlite包。我使用这个网站来查找哪个包依赖于直接sqlite。现在忽略了不具有使用sqlite的目的的包(例如bake:Continuous integration system)。同时也忽略了很久没有更新的软件包。

这就给我们留下了下面的包,它提供了基于直接sqlite的额外功能。此列表包括更多级别的反向查找,以查看其他哪个包使用下面列出的包。

  • 之前提到的持久sqlite

    • 埃斯奎莱托
    • 多事的
  • 土拨鼠sqlite

  • opaleye sqlite

  • selda sqlite

  • sqlite简单

    • 梁式硅铝石

我在-简单的图书馆家族。它们的功能非常全面,处于一个很好的中等抽象级别,在那里你可以在如何与数据库交互方面获得很大的灵活性。

我是opaleye sqlite的作者。它是用于SQLite的Opaleye的一个有点实验性的版本。Opaleye的Postgres版本非常坚固,在几个地方的生产中都有使用,但我只知道有一个人在生产中使用过Opaleye sqlite。

最新更新