有没有类似于 SQLite 但面向文档的数据库而不是 RDBMS 的东西?
Orient似乎与我正在寻找的东西相似,但它是用 Java 编写的,我正在寻找可以从 C++ 中使用的东西。
理想情况下,这将是一个无服务器系统,例如 SQLite。
有没有类似于 SQLite 但面向文档的数据库而不是 RDBMS 的东西?
Orient似乎与我正在寻找的东西相似,但它是用 Java 编写的,我正在寻找可以从 C++ 中使用的东西。
理想情况下,这将是一个无服务器系统,例如 SQLite。
UnQLite 是一个进程内软件库,它实现了一个自包含、无服务器、零配置、事务性 NoSQL 数据库引擎。UnQLite 是一个类似于 MongoDB、Redis、CouchDB 等的文档存储数据库,也是一个类似于 BerkeleyDB、LevelDB 等的标准 Key/Value 存储。
UnQLite 是 100% 手工编码的,用 ANSI C 编写,线程安全,完全可重入,无需修改即可编译,应该可以在大多数平台上运行,包括带有 C 编译器的受限嵌入式设备。UnQLite 在 Windows 和 UNIX 系统上进行了广泛的测试,尤其是 Linux、FreeBSD、Oracle Solaris 和 Mac OS X。
实际上,CouchDB 并不是严格面向服务器的。它旨在在各种环境中运行。移动沙发请参见此处。
Erlang 是 CouchDB 的实现语言,旨在运行在比当今手机更小、功能更弱的嵌入式设备上。
来自http://guide.couchdb.org/draft/why.html
Tokyo/Kyoto Cabinet是用 C++ 编写的,但它是一个简单的键值对存储。
有关其他替代方案,请参阅完整的 nosql 列表:http: //nosql-database.org/
RavenDB是用 .NET 编写的,带有嵌入式版本。
您是否考虑过使用Xapian,Lucene 的 C++ 对应物?它可以帮助您在具有多个字段的文档上存储和运行复杂的查询。
另一个建议是使用Berkley DB,因为它针对嵌入式数据访问进行了优化并且非常成熟。它们不仅提供基于 K/V 的访问,而且还提供类似 SQL、XML 和 Java 对象访问。另外结帐此概述。
我自己没试过,但也许这个能满足你的要求:
--沙发数据库
和
--用于与 Apache CouchDB 通信的 C++ 库
http://code.google.com/p/couchdbpp/
编辑。
我看到的回答太快了,因为 CouchDb 是面向服务器的。不过,看看。
还有化石。
关于 Fossil 经常出现的两个问题(或批评)可以总结如下:
为什么 Fossil 基于 SQLite 而不是分布式 NoSQL 数据库?为什么 Fossil 是用 C 而不是现代高级语言编写的?这两个问题都不能直接回答,因为它们都是基于错误的假设。我们声称 Fossil 根本不基于 SQLite,而且 Fossil 也不基于分布式 NoSQL 数据库,因为 Fossil 是分布式 NoSQL 数据库。而且,Fossil 确实使用了一种现代高级语言来实现它,即 SQL。