许可证对比表
用一张表查看每个许可证允许什么(许可)、施加哪些义务(条件)、不保证什么(限制)。点击许可证名称可跳转到详细解读。
| 许可证 | 许可 | 条件 | 限制 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 商业使用 | 修改 | 分发 | 私人使用 | 专利使用 | 版权与许可声明 | 源码分发时声明 | 标明修改 | 公开源代码 | 网络使用视为分发 | 相同许可证 | 相同许可证(文件级) | 相同许可证(库级) | 商标使用 | 责任限制 | 专利使用 | 无担保 | |
| MIT | 是 | 是 | 是 | 是 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 是 |
| Apache-2.0 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 是 | 是 | 否 | 是 |
| GPL-3.0 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 | 是 | 否 | 是 | 否 | 否 | 否 | 是 | 否 | 是 |
| GPL-2.0 | 是 | 是 | 是 | 是 | 否 | 是 | 否 | 是 | 是 | 否 | 是 | 否 | 否 | 否 | 是 | 否 | 是 |
| LGPL-3.0 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 | 是 | 否 | 否 | 否 | 是 | 否 | 是 | 否 | 是 |
| LGPL-2.1 | 是 | 是 | 是 | 是 | 否 | 是 | 否 | 是 | 是 | 否 | 否 | 否 | 是 | 否 | 是 | 否 | 是 |
| AGPL-3.0 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 是 | 否 | 是 |
| MPL-2.0 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 | 是 | 否 | 否 | 是 | 否 | 是 | 是 | 否 | 是 |
| EPL-2.0 | 是 | 是 | 是 | 是 | 是 | 是 | 否 | 否 | 是 | 否 | 是 | 否 | 否 | 否 | 是 | 否 | 是 |
| BSD-3-Clause | 是 | 是 | 是 | 是 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 是 |
| BSD-2-Clause | 是 | 是 | 是 | 是 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 是 |
| ISC | 是 | 是 | 是 | 是 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 是 |
| 0BSD | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 是 |
| BSL-1.0 | 是 | 是 | 是 | 是 | 否 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 是 |
| Unlicense | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 是 |
| CC0-1.0 | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 是 | 是 | 是 |
许可·条件·限制分类来源:choosealicense.com(GitHub,MIT 许可证)数据。
图例说明
- 商业使用 (许可)
- 原作品及衍生作品可用于商业目的。
- 修改 (许可)
- 可以修改代码。
- 分发 (许可)
- 可以分发代码。
- 私人使用 (许可)
- 可以在内部使用和修改而不公开。
- 专利使用 (许可)
- 贡献者明确授予专利使用权。
- 版权与许可声明 (条件)
- 分发时必须附上许可证副本和版权声明。
- 源码分发时声明 (条件)
- 只有以源代码形式分发时才需附上声明,二进制形式不需要。
- 标明修改 (条件)
- 如果修改了原作品,必须标明这一事实。
- 公开源代码 (条件)
- 分发时必须提供源代码。
- 网络使用视为分发 (条件)
- 通过网络使用的用户也有权获取源代码。
- 相同许可证 (条件)
- 分发修改版或衍生作品时,必须使用相同(或兼容)的许可证。
- 相同许可证(文件级) (条件)
- 对现有文件的修改部分必须以相同许可证分发。
- 相同许可证(库级) (条件)
- 库的修改部分必须使用相同许可证,但可能不适用于使用该库的程序。
- 商标使用 (限制)
- 明确声明不授予商标权。
- 责任限制 (限制)
- 明确声明不对损害承担责任。
- 专利使用 (限制)
- 明确声明不授予贡献者的专利权。
- 无担保 (限制)
- 明确声明不提供任何担保。
如何阅读此表
许可 栏中的 ● 表示明确允许该行为。MIT、BSD 等没有专利条款的许可证,「专利使用」一栏为空,但这并不意味着一定会遭到专利诉讼。也有观点认为存在默示许可的余地,只是有明确条款的一方更清晰而已。
条件 栏是分发时必须遵守的义务。如果代码只在公司内部使用、不对外分发,大多数条件都不会触发。例外是 AGPL-3.0 的「网络使用」条件:在服务器上运行修改版并让他人访问使用时,就会产生提供源代码的义务。
限制 栏是许可证不作保证的内容。几乎所有开源许可证都按「原样」提供,不承担担保和责任。即使许可证没有商标条款,也很难认为它连商标权都一并授予了。
对比时容易混淆的地方
- 「GPL-2.0」与「GPL-3.0」的区别不只是专利条款。3.0 新增了安装信息提供要求(即所谓防 Tivo 化)、违约后 30 天的纠正期,以及与 Apache-2.0 的兼容性。
- 同样带有「相同许可证」条件的许可证,范围也各不相同:GPL 以整个程序为准,LGPL 以库为准,MPL 以文件为准,EPL 以模块为准。
- 宽松型许可证之间的区别主要在于声明方式(MIT、ISC 是简短的一段,Apache 有 NOTICE 和修改标明)以及有无专利条款。
此表采用 choosealicense.com 的分类。实际义务以许可证原文为准。