许可证对比表

用一张表查看每个许可证允许什么(许可)、施加哪些义务(条件)、不保证什么(限制)。点击许可证名称可跳转到详细解读。

许可证许可条件限制
商业使用修改分发私人使用专利使用版权与许可声明源码分发时声明标明修改公开源代码网络使用视为分发相同许可证相同许可证(文件级)相同许可证(库级)商标使用责任限制专利使用无担保
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 的「网络使用」条件:在服务器上运行修改版并让他人访问使用时,就会产生提供源代码的义务。

限制 栏是许可证不作保证的内容。几乎所有开源许可证都按「原样」提供,不承担担保和责任。即使许可证没有商标条款,也很难认为它连商标权都一并授予了。

对比时容易混淆的地方

此表采用 choosealicense.com 的分类。实际义务以许可证原文为准。