问题 用于C#开发的NoSQL FREE替代品(替代ravendb)[关闭]


我发现了raven-db而我喜欢它,但后来我看到了许可证... GPL或Pay

所以我正在为封闭源代码C#开发raven-db替代品寻找好的免费版。 似乎MongoDB和Berkley也是GPL。

找到嵌入式解决方案对我来说要好得多。


11047
2018-04-09 08:48


起源

gpl许可有什么问题?那么它是免费的吗? - nawfal
它不是免费的,因为我不能按公司规则编写开源 - Cynede
它 是c#的端口 Lucene的 像单个表db一样存储/索引/搜索文本。它是一个单独的.dll用作嵌入式库 - L.B
它是Lucene.Java的一对一端口。因此,您可以使用任何java的文档。对于前者, blog.inflinx.com/2008/09/08/getting-started-with-lucene-part-1要么 codeclimber.net.nz/archive/2009/09/02/... - L.B
现在我想试试couch-db(但是第一个Lucene(因为它是嵌入的)(当看到mongodb标志时,我真的感到沮丧,这种棕色在我脑海中只有一个关联)如果Redis可以被嵌入,那就很有意思。众神... memcached在徽标周围使用与mongodb相同的颜色。我不能使用这种颜色的技术> _ <这是我的心理障碍。 - Cynede


答案:


如果我理解正确,那么你可以 安全地使用MongoDB 用它的双核/驱动程序许可证模型。

还有一件事,AFAIK除非您的代码发布到“世界”,否则您可以随心所欲地执行任何操作。


4
2018-04-09 09:31



要小心 - 尤其是GPL数据库以及“链接”代码的意义。您的代码可能与数据库无关,但如果您“分发”代码,则会强制您获得许可。 “发布”的定义可能含糊不清,尤其是在网络上。对于像数据库和GUI小部件这样的东西,LGPL是一个更安全的赌注。 - mattmc3
对。我的公司正在将mongodb作为Linux VM的一部分运送到客户站点,据律师说,这使得我们无法使用MongoDb而没有企业许可证进行EACH部署......这太疯狂了。 - Basil


像RavenDB和MongoDB一样 CouchDB的 是一个 文档存储noSQL数据库 使用REST Api(因此您可以使用任何语言)。

但CouchDB属于Apache 2.0,可用于商业/封闭项目


5
2018-04-09 09:01



Couchdb遗憾地没有嵌入 - Cynede
您正在寻找什么样的nosql数据库,除了嵌入式可能性?只是文档导向与否? - Kakawait
不是面向文档的 - Cynede


https://github.com/mcintyre321/PieDb 是我写的一个非常基本的麻省理工学院许可的嵌入式文档db

  • 使用json.net序列化文档将对象写入app_data
  • 使用Lucene.Net.Linq提供基本的IQueryable支持
  • 乐观并发
  • 不需要配置

让一些其他开发人员支持它会很好,因为它只有一个周末的工作,但它适用于简单的情况作为RavenDb替代品。


3
2018-02-27 11:50



您好,为什么不使用Lucene.Net? - Cynede
你的意思是代替数据库?还是查询? Lucene.Net.Linq是一个IQueryable提供商,它使用Lucene.Net。 - mcintyre321
我的意思是代替数据库。 - Cynede
我想支持很多功能(比如乐观并发,可自定义的序列化,id生成),我希望它与RavenDb类似(我在查看许可页面后写了它!)。 - mcintyre321


iBoxDB.net 是一个具有事务支持的轻量级可嵌入nosql数据库。 它可以嵌入到网络应用程序,Windows Phone,单声道应用程序,unity3d,node.js中


3
2017-11-02 13:36





作为GPL并不意味着您不能在封闭源项目中使用它,除非您计划修改源。

编辑:更清楚 - 这里的关键是任何变化的分布。您可以使用GPL软件并在内部执行任何您喜欢的操作,但是如果不提供源代码,您也不能分发这些更改的二进制文件(除非您已与版权所有者达成协议)。

我对raven-db一无所知,但我想它归结为以下场景之一:

  1. 您的应用程序直接与源接口。如果您的应用程序无法在没有GPL项目的情况下构建,那么您的应用程序必须根据GPL许可,或者您需要获得版权所有者的许可。 LGPL与众不同,但您在问题中说明了GPL。
  2. 您的应用程序可以在没有GPL软件的情况下构建,但需要它才能运行。这就像我在MySQL上构建应用程序,并指示客户自己配置MySQL实例。

-1
2018-04-09 09:02



IANAL,但AFAIK,只要您的应用程序未分发,就可以修改GPL源代码并且不在GPL下发布修改。如果分发使用GPL库的应用程序,则GPL是“病毒式的”,整个应用程序需要置于GPL之下。如果应用程序保留在内部且未分发,则根本不必是GPLd。 - hangy
你说得对,我应该更清楚。 - Rory Hunter