无需登录 数据私有 本地保存

开源许可证选择向导 - 回答几个问题推荐许可证

35
0
0
0

开源许可证选择向导

回答几个简单问题,为您推荐最合适的开源许可证

1 2 3 4 5

常见问题与知识点

开源许可证是一份法律文件,规定了他人可以如何使用、修改和分发您的代码。它明确了使用者的权利和义务。

没有许可证 ≠ 开源:如果没有许可证,默认情况下代码受版权法保护,他人无权使用、修改或分发您的代码。选择开源许可证可以:

  • 明确允许他人使用和贡献代码
  • 保护您的版权和署名权
  • 控制衍生作品的许可方式
  • 避免法律纠纷
  • 促进社区协作和代码共享

MIT许可证:最简洁宽松的许可证之一。允许任意使用、修改、分发,仅要求保留版权声明。不包含专利授权条款。

Apache 2.0许可证:同样宽松,但增加了:

  • 明确的专利授权:贡献者授予使用者其专利使用权
  • 专利报复条款:如果使用者起诉贡献者专利侵权,将失去专利授权
  • 修改声明要求:修改过的文件需要标注

选择建议:如果您关心专利问题或项目涉及专利技术,优先选择Apache 2.0;如果追求最大简洁性,选择MIT。

Copyleft(著佐权):是一种利用版权法的机制,要求衍生作品必须保持同样的自由。简单说就是"修改后的代码也必须开源"。

GPL(GNU通用公共许可证):强Copyleft许可证。任何使用GPL代码的衍生作品都必须以GPL协议开源。适合希望确保代码始终保持自由的项目。

LGPL(GNU宽通用公共许可证):弱Copyleft许可证。允许商业软件通过链接方式使用LGPL库,而不需要公开商业软件的源代码。仅对库本身的修改需要开源。适合库和框架。

简单记忆:GPL = 全部开源;LGPL = 库本身开源,但允许被闭源软件调用。

AGPL(Affero通用公共许可证):在GPL v3的基础上增加了"网络服务条款"(Section 13)。

关键区别:如果您的代码在服务器上运行(SaaS场景),GPL允许运营者不公开修改后的代码,因为代码没有被"分发"。AGPL弥补了这个"漏洞",要求通过网络使用该软件的用户也能获得源代码。

适用场景:

  • Web应用程序和服务
  • SaaS平台
  • 云服务软件
  • 任何主要通过网络提供给用户的软件

知名的AGPL项目包括:MongoDB(早期版本)、Grafana、MinIO等。

BSD 2-Clause(简化BSD):与MIT非常相似,仅要求保留版权声明和免责声明。非常宽松。

BSD 3-Clause(修订BSD):在2-Clause基础上增加了"禁止使用作者/机构名称进行背书"的条款。这防止他人利用您的名称来推广其衍生产品。

BSD 4-Clause(原始BSD):已很少使用,包含广告条款。

选择建议:如果担心他人利用您的名称或机构名进行商业宣传,选择BSD 3-Clause;否则MIT或BSD 2-Clause都可以。

MPL 2.0:文件级别的Copyleft许可证。是GPL和MIT之间的"中间地带"。

  • 文件级Copyleft:仅要求修改过的MPL许可文件保持开源,新增文件可以使用其他许可证(包括闭源)
  • 包含专利授权:与Apache 2.0类似的专利条款
  • 兼容GPL:MPL 2.0可以与GPL代码组合
  • 商业友好:允许与闭源代码混合

适合希望代码在文件级别保持开放,同时允许更大灵活性的项目。

如果您希望代码完全进入公共领域,不保留任何权利,可以选择:

  • Unlicense:明确声明放弃所有版权和相关权利。简短直白。
  • CC0(Creative Commons Zero):由Creative Commons设计的公共领域声明,法律文本更严谨,在国际上更受认可。

注意:某些司法管辖区不允许完全放弃版权。CC0包含"后备许可条款"来处理这种情况。对于代码,Unlicense更简洁;对于需要国际认可度的项目,CC0更稳妥。

正确应用开源许可证的步骤:

  1. 在项目根目录创建LICENSE文件:将完整许可证文本放入该文件
  2. 在源代码文件头部添加版权声明:简要注明许可证类型和版权所有者
  3. 在README中说明:明确标注项目使用的许可证
  4. 使用package.json等配置文件:在"license"字段中注明许可证标识符(如"MIT"、"Apache-2.0")
  5. 确保依赖兼容:检查项目依赖的许可证是否与您选择的许可证兼容

SPDX许可证标识符是标准化的简称,如MIT、Apache-2.0、GPL-3.0-only等,推荐在项目元数据中使用。

许可证 商业使用 修改开源 专利授权 署名要求 适用场景
MIT通用、库、工具
Apache 2.0企业项目、含专利技术
GPL v3✅强自由软件、社区项目
GPL v2✅强Linux内核等经典项目
AGPL v3✅强+SaaSWeb应用、SaaS平台
LGPL v3✅弱库、框架
MPL 2.0✅文件级混合开源/闭源项目
BSD 2-Clause类似MIT,极简项目
BSD 3-Clause✅+禁背书需防止名称滥用
Unlicense完全放弃版权
CC0公共领域,国际认可

  • 误区1:"没有许可证就是开源"——实际上没有许可证意味着保留所有权利,他人无权使用。
  • 误区2:"开源就是免费"——开源关注的是自由(使用、修改、分发的自由),而非价格。开源软件可以收费。
  • 误区3:"MIT许可证最安全"——MIT虽然简洁,但缺少专利保护。涉及专利的项目应选择Apache 2.0。
  • 误区4:"选择了GPL就无法商业化"——GPL允许商业使用和销售,只是要求衍生作品也开源。
  • 误区5:"许可证可以随意更换"——更换许可证需要所有贡献者的同意,特别是从宽松许可证转为Copyleft许可证时。