最受欢迎的国产开源项目都是什么模样?选用什么开源协议?使用哪种语言?实现了什么功能?
我们选取了码云 Gitee.com 平台 144 个优质开源项目,为你深入剖析国内 Top 开源项目。
(项目选取标准:入选 GVP——码云年度最有价值开源项目计划,或获得超过 1000 个 star。)
1.开源协议(license)分布——宽松型是首选
1.1 宽松式协议是首选,Apache-2.0 占比 45.14%
Apache-2.0 是码云Gitee 上开源作者的首选,占到了 45.14%,JFinal 、t-io、iBase4J 等正是采用此协议。另一个则是 MIT,占比 17.36%,zheng、layui 等正是此类代表。
宽松式协议允许用户任意使用软件,从而确保大家能从软件中得到最多的利益。
Apache-2.0 是宽松式协议(permissive license)的代表,它还包含了贡献者向用户提供专利授权相关的条款,使用 Apache-2.0 的知名软件有 Android、 Apache、Swift 等。
MIT 协议几乎对用户没有什么限制,只要保留版权声明和许可声明且不要求开发者承担责任,这也成为其深受欢迎的重要原因,国际上使用 MIT 协议的知名软件有 JQuery、.NET Core 、Rails 等。
1.2 限制式协议 LGPL、GPL、AGPL 紧随其后
LGPL、GPL、AGPL 这三项协议的采用占比为 2.78%、8.35%、1.39%,它们的限制性由弱到强,分别规定:
如果项目采用动态链接调用 LGPL 许可协议的库,项目可以不用开源;
如果项目包含了 GPL 协议的代码,那么整个项目都必须使用 GPL 许可协议;
如果云服务(即 SAAS)用到的代码是 AGPL 许可协议,那么云服务的代码也必须开源。
限制式协议的初衷是帮助开源项目获得成功,从条款上进行了详细的限制,防止部分开发者修改代码却不回