有许多Haskell SQLite绑定,这对我来说意味着使用构建/使用SQLite绑定有许多不同的权衡.我试图阅读其中许多软件包的文档,但过了一段时间它变得模糊,我无法确定选择一个在另一个上的主要权衡.
搜索Hackage发现:
没关系一些"meta"SQLite包.haskelldb-hdbc-sqlite3,haskelldb-hsql-sqlite3,language-sqlite,opaleye-sqlite
希望有人能够成功地做到这一点,并可以帮助我了解如何选择.
我看了看提到的包裹。其中一些包是另一个包的依赖项(如 opaleye-sqlite 和 sqlite-simple)依赖于 direct-sqlite。
因此,让我们先看看提供实际驱动程序的包。他们中的大多数已经过时了。似乎有 3 个仍然有最近的更新:
https://hackage.haskell.org/package/simplest-sqlite https://github.com/YoshikuniJujo/test_haskell/tree/master/features/ffi/sqlite3/simplest-sqlite我不会使用它,因为存储库说“这只是我的私人 Haskell 学习/测试存储库。”
https://hackage.haskell.org/package/persistent-sqlite这个是基于direct-sqlite的(好像direct-sqlite的一部分已经分叉了)
最后一个是 direct-sqlite 包。我使用这个网站来查找依赖于 direct-sqlite 的包。现在省略了没有与 sqlite 一起使用的目的的包(例如烘焙:持续集成系统)。并且还遗漏了很长时间没有更新的软件包。
这给我们留下了以下提供基于 direct-sqlite 的额外功能的包。此列表包括更多级别的反向查找,以查看哪个其他包使用下面列出的包。
我在 ...-simple 图书馆系列方面有很好的经验。它们功能非常齐全,处于良好的中等抽象级别,您可以在与数据库交互的方式上获得很大的灵活性。
我是opaleye-sqlite的作者。它是 SQLite 的 Opaleye 的一个有点实验性的版本。Opaleye 的 Postgres 版本非常扎实,在生产中使用了好几个地方,但我只知道一个人在生产中使用过 opaleye-sqlite。