github开源协议选择
文章目录
- 怎么选协议
- 宽松型协议 Permissive Licenses
- 传染型协议
怎么选协议
- 希望代码被广泛使用,允许闭源 MIT、Apache 2.0、BSD
- 需要专利保护 Apache 2.0
- 强制开源衍生作品 GPL、AGPL
- 开发库,允许闭源调用 LGPL
- 云服务项目,防止白嫖 AGPL
- 企业级项目,平衡开源与商业 Apache 2.0、MIT
宽松型协议 Permissive Licenses
MIT License:
核心保留原始版权声明和许可声明。可商用闭源,修改后也无需开源,适合个人项目,非常宽松
如:React、Vue.js、jQuery
Apache License 2.0:
核心保留版权声明、许可证文件,明确包含专利授权条款。允许商用,闭源,修改
明确包含专利授权条款
如:Android、Kubernetes、Apache Kafka
BSD 3-Clause License:
保留版权声明和免责声明,禁止用作者名义推广衍生作品。允许商业用途、闭源、修改、分发
如:FreeBSD、Nginx
传染型协议
GNU General Public License (GPL):
修改后的代码必须开源,商业用途、修改、分发,衍生作品必须使用 GPL 协议,强调开源精神的项目
如:Linux、GCC、Git
GNU Affero General Public License (AGPL):
即使通过 SaaS(云服务)使用,也必须开源,商业用途、修改、分发,防止云服务公司闭源使用代码
如:MongoDB(早期版本)、Nextcloud
GNU Lesser General Public License (LGPL):
仅直接修改的代码需开源,动态链接库可闭源。商业用途、闭源调用库
如:FFmpeg、GTK