很多朋友开源了代码却忘了选许可证,或者随便挑一个看着顺眼的就用了。今天用一张完整表格,把常见的7种许可证和“没选”的情况一次性说清楚。
| 许可证 | 一句话概括 | 核心要求 | 商用友好度 | “传染性” | 典型项目 |
|---|---|---|---|---|---|
| MIT | 最宽松,随便用 | 保留版权声明即可 | ⭐⭐⭐⭐⭐ 完全允许 | 无 | React, Node.js |
| Apache 2.0 | 宽松,附赠专利保护 | 保留版权声明,须声明修改内容 | ⭐⭐⭐⭐⭐ 完全允许 | 无 | Kubernetes, Android |
| BSD | 和MIT很像,但更看重“名分” | 保留版权声明,且禁止用作者名义推广 | ⭐⭐⭐⭐⭐ 完全允许 | 无 | FreeBSD |
| GPL | 开源界的“硬汉”,必须开源 | 衍生作品必须开源,且采用GPL | ⭐⭐ 必须开源 | 强 | Linux内核, WordPress |
| LGPL | GPL的“温和版”,专为库设计 | 可被闭源软件动态链接调用,但修改库本身须开源 | ⭐⭐⭐⭐ 很友好 | 弱 | FFmpeg, Qt |
| 木兰宽松版 | 国产MIT,中英文同等法律效力 | 保留版权声明即可 | ⭐⭐⭐⭐⭐ 完全允许 | 无 | openEuler |
| 木兰公共版 | 国产GPL,为强互惠而生 | 修改分发后的代码,必须用相同协议开源 | ⭐⭐ 必须开源 | 强 | OceanBase |
| ❌ 未选许可证 | 公开了≠开源了 | 保留所有权利,他人无权复制/修改/分发/商用 | 不适用 | 不适用 | 大量个人开源项目(⚠️ 错误示范) |
⚠️ 没选许可证,其实是你亏了
有人可能会想:“我不选许可证,别人就不能用我代码,这不是挺好吗?”
其实恰恰相反——没选许可证,你才是吃亏的那个人。
没有明确声明的源代码,默认“保留所有权利”。这意味着别人不能使用、修改、分发你的代码,看似保护了自己,但代价是什么?
- 别人发现了bug,修好了,但没法合法地给你提PR——社区贡献进不来
- 大厂的法务部门看到没许可证的代码,直接拉黑禁用——企业用户进不来
- 你的项目没办法被其他开源项目作为依赖引用——生态传播进不来
许可证是你主动递给使用者的“授权书”,不是别人从你手里抢走的“控制权”。
如果你想被他人使用、被社区共建、被生态传播,选个许可证远比“保留所有权利”更划算。放一个 LICENSE 文件花不了几分钟,却能打开合作、贡献、传播的大门。代码都写了,不差这点功夫。
💡 快速选择指南
- 啥都不懂就想快速用:选 MIT,最省心
- 担心专利纠纷:选 Apache 2.0
- 开发库(Library):选 LGPL
- 支持国产且要强开源:选 木兰公共版
- 支持国产、规避国际法律风险:选 木兰宽松版 (MulanPSL v2)
- 想保留所有权利:那就别选许可证(但可能错过很多机会哦)
选对许可证,让你的开源之路走得更稳、更远。
一梦风神 · 本文采用 CC BY-NC 4.0 协议共享
