具有许可免费软件许可证的非关系嵌入式数据库?

时间:2011-04-12 18:50:40

标签: c++ database berkeley-db embedded-database

非常感谢您抽出时间来查看我的问题。

(我知道这个问题Nonrelational Databases for C++,但我的需求有点不同,只有一个答案。)

我正在开发一个商业C ++库,除其他外,它必须保留消息。我想通过编写自己的DBMS来避免重新发明轮子。不幸的是,我有以下限制标准:

  1. 它必须可以从C ++中使用 - 我正在编写一个C ++库。如果使它们工作的努力程度不是很高,那么绑定是可以接受的。
  2. 我需要一个嵌入式数据库。单机不起作用。
  3. 我想避免使用关系数据库。除了对性能开销的担忧之外,作为不鼓励关系数据库的开发人员,还有我无法控制的技术政治。
  4. 我需要一个宽松的免费软件许可证。购买许可证很难,但客户不想让他的消息来源。
  5. 我想要一个已经建立的解决方案(在实验阶段之后至少存在一段时间,已被多个项目使用过)。
  6. 可悲的是,由于以上原因,这两个选择不起作用: -SQLite是关系型的 -BerkeleyDB是GPL或商业

    再次感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

使用SQLite in b-tree模式。公共区域。避免政治。让我们通过避免性能关键路径的SQL接口来解决政治问题,并且可选择使用SQL解析器路径来处理那些不在关键路径上的查询。

答案 1 :(得分:3)

Tokyo CabinetQDBM都是LGPL并拥有C API。