开源协议(License)是什么
开源协议是一份法律文件,规定了别人在「使用、复制、修改、再分发」你的代码时能做什么、不能做什么。它把「开源」从一句口号变成有约束力的规则:你选了某个协议,就等于向全世界宣布「在遵守这些条款的前提下,你可以免费用我的代码」。
没有协议的文件,法律上默认是「保留所有权利」——别人哪怕想引用一行,理论上都需要你单独授权。所以只要你想让别人用,就应该显式选一个协议。
为什么不能随便选
不同协议的「开放程度」差异巨大:
- 宽松协议(MIT / Apache / BSD / ISC / Unlicense):别人可以拿去闭源商用,只要保留版权声明。对采用方最友好,传播最快。
- 弱 Copyleft(MPL / LGPL):你修改的那部分必须开源,但可以和闭源代码组合。适合做「希望被广泛集成、又想保护自己修改」的库。
- 强 Copyleft(GPL / AGPL):基于它的衍生作品(甚至 AGPL 的网络服务)都必须以相同协议开源。适合强调「自由」、不希望被闭源吸收的项目。
选错协议可能带来法律风险:比如公司项目误用了 GPL 代码,可能被要求公开整个产品源码。
主流协议一览
MIT · 宽松许可(可闭源商用)
最流行的宽松协议,简单清晰,允许闭源与商用。
适用:开源首选 / 闭源可用 / 库/应用通用
Apache-2.0 · 宽松许可(可闭源商用)
宽松协议 + 明确的专利授权条款,企业项目偏爱。
适用:企业友好 / 专利授权 / 闭源可用
BSD-3-Clause · 宽松许可(可闭源商用)
宽松协议,比 MIT 多一条「禁止用作者名背书」。
适用:闭源可用 / 库通用
BSD-2-Clause · 宽松许可(可闭源商用)
BSD-3 去掉背书条款的精简版。
适用:闭源可用 / 库通用
ISC · 宽松许可(可闭源商用)
功能等同 MIT,表述更贴近 BSD 风格,npm 生态常用。
适用:闭源可用 / Node 生态
Unlicense · 宽松许可(可闭源商用)
主动放弃版权,把代码送入公共领域,最自由的释放方式。
适用:公共领域 / 极简
MPL-2.0 · 弱 Copyleft(库可被闭源调用)
文件级 Copyleft:你修改的 MPL 文件必须开源,但可与其他闭源文件组合。
适用:弱 Copyleft / 文件级开源 / 混合闭源
LGPL-3.0 · 弱 Copyleft(库可被闭源调用)
弱 Copyleft,适合作为可被闭源软件链接调用的库。
适用:弱 Copyleft / 库 / 可闭源调用
GPL-3.0 · 强 Copyleft(衍生作品必须开源)
强 Copyleft:基于 GPL 代码的衍生作品必须以 GPL 开源。
适用:强 Copyleft / 衍生必须开源
AGPL-3.0 · 强 Copyleft(衍生作品必须开源)
强 Copyleft 的网络版:即使只通过网页提供服务(不分发),也必须开源。
适用:强 Copyleft / 网络服务须开源
怎么快速选
- 能不能闭源商用?
- 能 → 想要专利保护选 Apache-2.0,否则选 MIT / ISC / BSD / Unlicense。
- 不能(希望衍生作品也开源)→ 看下一步。
- 开源力度要多强?
- 只要求「被修改的文件开源」、允许和闭源组合 → MPL-2.0 / LGPL-3.0。
- 要求「所有衍生作品甚至网络服务都开源」 → GPL-3.0 / AGPL-3.0。
本工具的「帮我选」会按你的答案直接给出推荐,省去反复查文档。
生成的 LICENSE 怎么用
- 在工具里填好年份和版权所有者(个人或组织名),右侧会自动替换占位符。
- 点「下载 LICENSE」,放到仓库根目录(文件名就是
LICENSE,无扩展名)。 - 在
README顶部加一行声明,例如:Licensed under the MIT License。
说明:GPL / AGPL 等超长协议,本工具生成的 LICENSE 文件中会指向 GNU 官方权威全文,请以下载时文件内的链接为准;其余协议均为可直接使用的完整文本。
几个常见误区
- 「不写协议 = 随便用」是错的:没协议 = 保留所有权利,别人用需要单独授权。
- 「MIT 不能商用」是错的:MIT 明确允许商用,只需保留版权声明。
- 「用了 GPL 我就不能赚钱」是错的:GPL 不禁止收费,只是要求你分发的衍生作品也开源。
- 「AGPL 只影响分发」是错的:AGPL 把「通过网路提供服务」也视为需要开源的情形,纯 SaaS 服务端也要当心。
相关工具
- .gitignore 生成器:初始化项目时一并生成忽略文件
- GitHub 高星项目榜:参考优秀开源项目的协议选择
- JSON 格式化:整理项目配置文件
- 大小写转换:规范变量与文件名
所有生成与下载都在你的浏览器本地完成,本工具不收集、不上传任何数据。协议文本以官方发布版本为准,本页内容不构成法律意见。