1.引言

最近准备写一个rpc框架,对于开源协议的选择纠结了半天,这里留个记录

2.要求

计划用相对宽松的且能被广大开发者和公司接受的协议

3.考虑

首先排除GPL,LGPL,因为这2个协议修改源码后必须开源。
然后可选的有MIT、BSD、Apache

4.MIT

基于此的二次开发软件可以闭源,可以修改源码且闭源,可以用于商业
要求:MIT协议允许你任意的使用、复制、修改原MIT代码库,随便你卖钱还是开源,唯一需要遵循的原则就是在你的软件中声明你也使用的是MIT协议就行了。
没有专利相关约束,可能存在法律纠纷。

5.BSD

基于此的二次开发软件可以闭源,可以修改源码且闭源,可以用于商业
要求:基于此开源代码开发的二次代码需要带上此开源代码开源协议说明,唯一多的是不允许使用者借着开源软件名义宣传,比如某某框架加强版。
没有专利相关约束,可能存在法律纠纷。

6.Apache

基于此的二次开发软件可以闭源,可以修改源码且闭源,可以用于商业
要求:基于此开源代码开发的二次代码需要带上此开源代码开源协议说明。比MIT和BSD,多了专利相关的描述,能减少专利导致的纠纷,很多公司更倾向用这个协议的开源代码。

7.综合选择

选择MIT协议,因为是最宽泛的协议,容易推广,而自己希望获得更多曝光度,所以用这个

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐