许可证是开源项目的「用户协议」。挑错了再改,贡献者的授权可能收不回来,所以第一版就要选对。
最宽松:MIT
一句话:保留版权声明,其余随意。可以闭源商用,不必开源衍生品。
前端生态(React、Vue、Astro 本身)绝大多数是 MIT。你想让库被尽可能多的项目使用,选它。
带专利授权:Apache-2.0
MIT 的所有自由 + 明确的专利授权 + 商标条款。大厂主导的项目(Kubernetes、大部分 ASF 项目)偏好它,因为它堵住了「代码让你用、专利告你侵权」的漏洞。
有专利顾虑的基础设施项目,选它。
传染性:GPL 系
GPL 要求衍生作品同样开源并使用 GPL —— 这就是「传染性」。LGPL 放宽了库链接场景,AGPL 则把传染延伸到了网络服务(SaaS 用了 AGPL 代码,服务端也要开源)。
GNU 工具链、Linux 内核都是 GPL。你的立场是「 derivatives 必须保持开放」时选它。
决策树
- 只求最大传播 → MIT
- 涉及专利或企业合规 → Apache-2.0
- 坚持下游必须开源 → GPL-3.0 / AGPL-3.0
本博客的文章默认采用 CC BY-NC-SA 4.0,对应 NexT 的
post_copyright配置, 页面底部「版权声明」卡片就是它渲染出来的。