常见的开源协议有数十种甚至更多不过绝大多数项目都集中在少数几个主流协议上。这些协议主要可以按“限制强度”分为三类你可以把它们想象成一个从“完全自由”到“严格约束”的光谱。⚖️ 协议类型总览1. 宽松型 (Permissive)核心理念限制极少商业友好。允许几乎无限制地使用、修改、闭源商用核心要求是保留版权声明。常见协议MIT、Apache 2.0、BSD。典型项目React、Node.js (MIT)Kubernetes、Android (Apache 2.0)FreeBSD (BSD)。2. 弱 Copyleft 型 (Weak Copyleft)核心理念平衡开放与商业。允许闭源商业使用但要求对协议代码本身的修改必须开源。常见协议LGPL、MPL、EPL。典型项目FFmpeg (LGPL)Firefox (MPL)。3. 强 Copyleft 型 (Strong Copyleft)核心理念“传染性”强确保自由。要求任何基于该协议代码的衍生作品或与之链接的软件在分发时必须以相同协议开源全部源代码。常见协议GPL、AGPL。典型项目Linux 内核 (GPL)MongoDB (AGPL)。 主流协议对比分析MIT 许可证特点最宽松、最简单的协议之一。允许自由使用、修改、分发、甚至闭源商用唯一要求是保留版权声明。适用场景追求最大自由度的个人项目、小型工具、前端组件库等。风险无专利保护代码可能被闭源商用。Apache License 2.0特点在 MIT 的基础上增加了明确的专利授权条款。贡献者会自动授予用户专利使用权并包含专利报复条款。适用场景企业级开源项目或涉及专利技术的代码。要求修改过的文件需标注变更。BSD 许可证特点与 MIT 类似非常宽松。主流是3-Clause版本比 MIT 多了一条“禁止用原作者名义进行推广”的条款。适用场景追求简洁且需避免背书风险的场景如操作系统组件。GNU GPL (v2/v3)特点“Copyleft”的典型代表具有“传染性”。只要你的软件分发时包含了 GPL 代码整个软件源代码都必须开源。适用场景希望自己的代码永远保持开源自由并防止被闭源商用。风险与商业闭源软件不兼容。GNU LGPL特点GPL 的“弱化版”。允许其他代码通过动态链接库的方式使用 LGPL 代码而不用开源自身代码。适用场景为类库Library设计。如 FFmpeg。Mozilla Public License (MPL) 2.0特点属于“弱 Copyleft”。要求被修改过的文件必须开源但与其他代码组成的整体作品可以保持闭源。适用场景希望修改的贡献回馈社区但整体项目又能用于商业用途。 协议选择决策参考为了方便你快速决策可以参考这个简化的选择指南只想保留版权其他什么都不管选择MIT或BSD 2-Clause。需要专利保护防止专利诉讼选择Apache 2.0。希望代码永远开源不被闭源使用选择GPL。开发的是类库希望被广泛使用选择LGPL或MPL。希望完全放弃版权进入公共领域选择CC0或Unlicense。作为中国开发者希望协议符合中国法律可考虑木兰协议 (MulanPSL)。
开源协议介绍
发布时间:2026/7/15 5:48:49
常见的开源协议有数十种甚至更多不过绝大多数项目都集中在少数几个主流协议上。这些协议主要可以按“限制强度”分为三类你可以把它们想象成一个从“完全自由”到“严格约束”的光谱。⚖️ 协议类型总览1. 宽松型 (Permissive)核心理念限制极少商业友好。允许几乎无限制地使用、修改、闭源商用核心要求是保留版权声明。常见协议MIT、Apache 2.0、BSD。典型项目React、Node.js (MIT)Kubernetes、Android (Apache 2.0)FreeBSD (BSD)。2. 弱 Copyleft 型 (Weak Copyleft)核心理念平衡开放与商业。允许闭源商业使用但要求对协议代码本身的修改必须开源。常见协议LGPL、MPL、EPL。典型项目FFmpeg (LGPL)Firefox (MPL)。3. 强 Copyleft 型 (Strong Copyleft)核心理念“传染性”强确保自由。要求任何基于该协议代码的衍生作品或与之链接的软件在分发时必须以相同协议开源全部源代码。常见协议GPL、AGPL。典型项目Linux 内核 (GPL)MongoDB (AGPL)。 主流协议对比分析MIT 许可证特点最宽松、最简单的协议之一。允许自由使用、修改、分发、甚至闭源商用唯一要求是保留版权声明。适用场景追求最大自由度的个人项目、小型工具、前端组件库等。风险无专利保护代码可能被闭源商用。Apache License 2.0特点在 MIT 的基础上增加了明确的专利授权条款。贡献者会自动授予用户专利使用权并包含专利报复条款。适用场景企业级开源项目或涉及专利技术的代码。要求修改过的文件需标注变更。BSD 许可证特点与 MIT 类似非常宽松。主流是3-Clause版本比 MIT 多了一条“禁止用原作者名义进行推广”的条款。适用场景追求简洁且需避免背书风险的场景如操作系统组件。GNU GPL (v2/v3)特点“Copyleft”的典型代表具有“传染性”。只要你的软件分发时包含了 GPL 代码整个软件源代码都必须开源。适用场景希望自己的代码永远保持开源自由并防止被闭源商用。风险与商业闭源软件不兼容。GNU LGPL特点GPL 的“弱化版”。允许其他代码通过动态链接库的方式使用 LGPL 代码而不用开源自身代码。适用场景为类库Library设计。如 FFmpeg。Mozilla Public License (MPL) 2.0特点属于“弱 Copyleft”。要求被修改过的文件必须开源但与其他代码组成的整体作品可以保持闭源。适用场景希望修改的贡献回馈社区但整体项目又能用于商业用途。 协议选择决策参考为了方便你快速决策可以参考这个简化的选择指南只想保留版权其他什么都不管选择MIT或BSD 2-Clause。需要专利保护防止专利诉讼选择Apache 2.0。希望代码永远开源不被闭源使用选择GPL。开发的是类库希望被广泛使用选择LGPL或MPL。希望完全放弃版权进入公共领域选择CC0或Unlicense。作为中国开发者希望协议符合中国法律可考虑木兰协议 (MulanPSL)。