选择开源许可证(Open Source License)来约束代码
🏆 常见开源许可证一览
许可证 | 是否允许商用 | 是否需要开源衍生品 | 是否可闭源使用 | 是否允许修改 | 特点简述 |
---|---|---|---|---|---|
MIT | ✅ 是 | ❌ 否 | ✅ 是 | ✅ 是 | 非常宽松,允许闭源使用和修改,只需保留版权声明 |
Apache 2.0 | ✅ 是 | ❌ 否 | ✅ 是 | ✅ 是 | 类似 MIT,但额外提供专利授权保护 |
GPL v3 | ✅ 是 | ✅ 是 | ❌ 否 | ✅ 是 | 强制继承开源(传染性),适用于自由软件运动 |
LGPL v3 | ✅ 是 | ✅ 是(库修改) | ✅ 是(动态链接) | ✅ 是 | 比 GPL 更宽松,适合库类项目 |
BSD 2-Clause/3-Clause | ✅ 是 | ❌ 否 | ✅ 是 | ✅ 是 | 类似 MIT,主要在学术界和 BSD 系统中流行 |
MPL 2.0 | ✅ 是 | ✅ 是(文件级别) | ✅ 是 | ✅ 是 | 文件级开源,不强制整个项目都开源 |
AGPL v3 | ✅ 是 | ✅ 是(包括 SaaS) | ❌ 否 | ✅ 是 | 比 GPL 更严格,网络部署也要开源(SaaS 传染) |
Unlicense | ✅ 是 | ❌ 否 | ✅ 是 | ✅ 是 | 完全放弃版权(进入公共领域),非常宽松 |
Creative Commons (CC) | 部分许可 | 部分强制 | 部分许可 | ✅ 是 | 主要用于内容(非代码)作品:文章、文档等 |
使用目的 | 推荐协议 |
---|---|
开源商业项目、库 | MIT / Apache 2.0 |
追求自由软件哲学 | GPL v3 |
开源但希望可闭源集成 | LGPL / MPL |
开源文档或内容 | CC BY / CC0 |
放弃所有权,最大自由 | Unlicense |
🚫 “传染性”说明(重要)
• MIT、Apache、BSD:无传染性,可闭源引用。
• GPL / AGPL:有强传染性,使用者也必须开源。
• LGPL:弱传染性,适合用于共享库。
• MPL:中等传染性,仅要求修改的文件开源。
🧭 工具推荐
• 🧪 choosealicense.com:GitHub 官方推荐选许可证网站。
• ✅ git init 后可执行 gh repo create 自动选择开源协议(MIT/Apache2/GPL…)