整体说明
- GitHub上有许多开源协议,本文总结常见的开源协议及其含义
MIT License
- 极宽松,允许自由使用、修改和分发,只需保留版权声明。无担保,作者不承担责任
- 适用场景:适合个人项目或希望代码广泛传播的场景
- 个人开发者常使用的协议
Apache License 2.0
- 允许商业使用、修改和分发,需保留版权和许可证
- 特殊条款 :专利授权,明示禁止商标使用
- 适用场景:企业项目,需明确专利授权
- 目前的大模型大多使用的这个协议
GNU GPL v3
- 强Copyleft,修改和分发需开源且保持相同许可证。衍生作品必须开源,商业分发需提供源代码
- 适用场景:确保代码及其衍生版本永远开源
GNU LGPL v3
- 弱Copyleft,允许闭源软件通过库引用方式使用。修改LGPL库本身需开源
- 适用场景:开发开源库,允许闭源应用调用
BSD 2-Clause “Simplified” License
- 允许自由使用和修改,禁止用作者名义推广。需保留版权声明
- 适用场景:类似MIT,但限制稍多
BSD 3-Clause “New” License
- 在2-Clause基础上增加禁止使用作者商标的条款
- 适用场景:需明确商标保护的项目
Mozilla Public License 2.0 (MPL 2.0)
- 部分Copyleft,修改文件需开源,未修改部分可闭源
- 适用场景:适合混合开源/闭源的组件化项目
Creative Commons Licenses
- CC0 :放弃版权,进入公有领域
- BY :允许商用,但需署名
- NC :禁止商业使用
- 适用场景:非软件类作品(如文档、设计)
Unlicense
- 放弃所有版权,代码进入公有领域
- 适用场景:完全开放的公共项目
选择建议
- 希望代码广泛传播: MIT/Apache
- 确保衍生作品开源: GPL
- 开发开源库: LGPL
- 非软件作品: CC系列