Redis开源项目的终极杀手? ——CRUG解读Redis开源协议变更
引言:
数据库制造商 Redis Labs 本周将公司开发的Redis 模块从 AGPL 迁移到将 Apache v2.0 与 Commons Clause 相结合的许可证,对许可证涵盖的软件作了限制。许可证的变更意味着自研 Redis 模块 - RediSearch,Redis Graph,ReJSON,ReBloom 和 Redis-ML 将不再是开源软件,而是源码可用(source available)。
新许可证限制了云提供商向客户提供这些 Redis 模块的能力,Redis Labs 可能会成为包含这些附加组件的唯一服务销售商。 但是,Redis 数据库代码仍属于 BSD 许可证。
Redis Labs 并不是唯一一家做出这样改变的公司。5月,Neo4j 图数据库在其 AGPL 许可证中添加了 Commons Clause。
Redis Labs 的联合创始人兼首席技术官 Yiftach Shoolman 表示:“多年来,云提供商通过销售基于开源项目的云服务,可从中获利数亿美元,可这些项目实际上并不是他们自己开发的,如 Docker,Elasticsearch,Hadoop,Redis 和 Spark。这阻碍了社区投资开发开源代码,因为任何潜在的好处都归云提供商而不是代码开发人员或他们的赞助商。”
Redis的license变更许可证引发开源社区热议,大家比较关心的问题主要集中在这几个方面:Redis 还开源吗?新出现的 Commons Clause 到底包含哪些内容?协议变更对用户的直接影响有哪些?下面就由小编为您详细解答,关于此次Redis开源协议变更大家关心的一些问题。
Q:Redis协议到底做了哪些变更?
A:为了让大家更清楚的了解变更点,小编特意梳理了如下表格供大家参考:
|
变更前 |
变更后 |
备注 |
|
|
Redis Core |
BSD |
BSD |
不变 |
|
Redis Modules |
AGPL |
AGPL |
不变 |
|
Redis Modules(RedisLabs公司创办) |
AGPL |
Apache 2.0 with Commons Clause |
涉及模块:RediSearch, Redis Graph, ReJSON, Redis-ML, Rebloom |
表1.Redis协议变更范围
Q:新出现的 Commons Clause 到底是什么东东?
A:Commons Clause v1.0 的介绍:
本软件由许可方根据以下定义的条款提供给您,但须符合以下条件。
在不限制许可中的其他条件的情况下,根据许可证授予的权利不包括、并且不授予您销售软件的权利。
综上所述,“出售”是指根据许可证授予您的任何或所有权利,以向第三方提供费用或其他报酬(包括但不限于与软件相关的托管或咨询/支持服务的费用),产品或服务的价值完全或基本上来自软件的功能。许可证要求的任何许可声明或归属也必须包含此 Commons Cause License Condition 声明。
简单地说就是:不许销售,不存在商业环境。
Q:Redis作者对此是怎么看的?
A:Redis作者antirez表态:“对于我将开发的Redis模块,比如Disque,我会选择AGPL
我们生活在云时代,所以使用新许可证会强制其他SaaS公司重新提交回他们的改进。然而,这不适用于Redis本身。 Redis是10年集体努力的成果,是我们可以一起做其他事情的基础,这个基础必须有尽可能多的可能性,即使用BSD许可证。”
Q:Redis中国用户组(CRUG)如何解读这件事情?
A:Commons Clause 的初衷,是为了抵御一些不良行为。如那些使用源代码,却不对开源代码维护做出补偿的公司,但这个License在开源界存在很在的争议。如OSI VM Brasseur 副总裁吐槽 Commons Clause 的销售禁令表述不明晰,可能会面临法律问题。OSI 总裁则认为,这种许可证剥夺了软件自由。
的确,新许可证对使用Redis Module的商业公司影响较大,Commons Clause 并未给出支持开源软件的解决方案,而是将开源软件变成了专有软件,并将所有开发者的开源贡献成果交由 Redis Labs 来控制,因为Redis Labs 是这些组件的唯一服务销售商。
这限制了其他商用公司向客户提供这些 Redis 模块的能力。Redis Labs 是否能够通过Commons Clause获得更多好处,需要持续观望。
Q:云服务厂商的表现如何?
A:华为云分布式缓存服务DCS提供云上的Redis服务,为用户提供Redis Core的基础能力,并未提供Redis Module相关能力,此次协议变更对用户是没有影响的。华为云在积极参与开源活动的同时,尊重开源代码的知识产权,严格遵守开源协议的要求,为用户提供更优质的云服务。
Redis开源项目的终极杀手? ——CRUG解读Redis开源协议变更的更多相关文章
- 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)
在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...
- 这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧
注意:有网友提出部分项目停止更新的事情,这个问题我特意注意过,很多都是小功能组件,功能稳定,没有bug,没更新是正常的.够用就行了.其次技术支持的事情,对开源免费来说,不能太强求,这里发布的都是小功能 ...
- Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目
Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...
- 400多个开源项目以及43个优秀的Swift开源项目-Swift编程语言资料大合集
Swift 基于C和Objective-C,是供iOS和OS X应用编程的全新语言,更加高效.现代.安全,可以提升应用性能,同时降低开发难度. Swift仍然处于beta测试的阶段,会在iOS 8发布 ...
- 使用开源项目免费申请 JetBrains 全家桶 IDEA 开源许可证
JetBrains 公司旗下的 IDEA 功能都十分强大,深受各种编程语言相关的程序员的喜爱.我个人而言,经常使用 WebStorm,也使用过 PyCharm. 正常情况下 JetBrains 公司的 ...
- React Native开源项目如何运行(附一波开源项目)
学习任何技术,最快捷的方法就是学习完基础语法,然后模仿开源项目进行学习,React Native也不例外.React Native推出了1年多了, 开源项目太多了,我们以其中一个举例子.给大家演示下如 ...
- Redis——SpringBoot项目使用Lettuce和Jedis接入Redis集群
Jedis连接Redis: 非线程安全 如果是多线程环境下共用一个Jedis连接池,会产生线程安全问题,可以通过创建多个Jedis实例来解决,但是创建许多socket会影响性能,因此好一点的方法是使用 ...
- .NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑) 与 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB中,介绍了LiteDB的基本使用情况以及部 ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
随机推荐
- 09CSS高级定位
CSS高级定位 定位方式——position position:static|absolute|relative static表示为静态定位,是默认设置. absolute表示绝对定位,与下位置属 ...
- css滚动条样式修改
.activeMoreBankList{ height: 188px; overflow-y: auto;} /*滚动条样式*/.activeMoreBankList::-webkit-scrollb ...
- JVM优化(下)
14.Tomcat8优化之G1牢记收集器的测试结果以及小结: jmeter测试:(1)tomcat未做任何优化:(2)禁用AJP:(3)启用连接池:(4)设置最大线程数1000,初始线程数200:(5 ...
- 笔试算法题(36):寻找一棵二叉树中最远节点的距离 & 根据二叉树的前序和后序遍历重建二叉树
出题:求二叉树中距离最远的两个节点之间的距离,此处的距离定义为节点之间相隔的边数: 分析: 最远距离maxDis可能并不经过树的root节点,而树中的每一个节点都可能成为最远距离经过的子树的根节点:所 ...
- 基于PHP的微信支付教程
微信支付作为各大移动支付方式之一,本课程只要向大家介绍并使用微信支付的常用功能,进而集合到已有的项目中去,希望各位能够快速上手并掌握实战"干货". 出处至:汇智网 hubwiz. ...
- Ajax实现跨域访问最新方式
在实际项目当中,我们经常会遇到同一个域名下不同项目之间通过Ajax相互调用数据,这样问题就来了,如何通过Ajax实现跨域呢? 解决方案 1.Jsonp Jsonp解决跨域相对简单,服务器无需任何配置. ...
- npm run build 打包后,如何查看效果
我们用vue-cli搭建的项目执行npm build后本地打开页面空白,如果才能查看npm run build之后的结果呢 首先我们看一下提示 Tip: built files are meant t ...
- 添物不花钱学JavaEE(基础篇)- Tomcat
Tomcat是大家常用的Java Web容器. 添物网使用的也是Tomcat. 官方网址: http://tomcat.apache.org/ 官方文档看看. 可以看的图书 <Tomcat权威指 ...
- android开发里跳过的坑——button不响应点击事件
昨天遇到一个头疼的问题,在手机上按钮事件都很正常,但是在平板上(横屏显示的状态),button点击事件不响应,代码简化如下: public class Test extends Activity im ...
- Linux下汇编语言学习笔记53 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...