开源协议选型速查表(直接对照场景选)

laoluo
laoluo
laoluo
管理员
155
文章
0
粉丝
教程评论4阅读模式

一、先明确你的 4 个核心场景

  1. 自用 / 内部系统,不对外发布、不做 SaaS
  2. 打包软件售卖、客户端分发(对外交付二进制)
  3. 云 SaaS、网页服务、线上 API 对外提供服务
  4. 开发通用工具库 / SDK,给别人嵌入使用

二、场景匹配推荐(最优→备选)

场景 1:内部项目,不对外分发、不上线 SaaS

需求:随便改、不公开代码、无法律麻烦

  • 首选:MIT
  • 备选:Apache 2.0
    优势:无任何开源强制义务,仅保留版权声明即可

场景 2:商用闭源软件,打包分发客户端 / 安装包

需求:自己产品闭源售卖,依赖第三方开源代码

  1. 自研独立产品(无第三方库修改)
    首选 Apache 2.0(自带专利防护,企业最稳妥)
    次选 MIT
  2. 引用开源类库(动态链接 dll/so)
    优先 LGPLv3 库,主程序依旧闭源
  3. 禁止使用:GPLv2/v3(静态打包分发会强制整体开源)

场景 3:开源项目做云 SaaS、网页在线服务

需求:防止别人拿你的代码改改做成付费云服务闭源牟利

  • 首选:AGPLv3
    规则:只要对外提供线上服务,使用者必须公开全套源码
  • 折中方案:MPL 2.0(仅改动文件开源,约束更轻)

场景 4:开发通用底层库、SDK、插件

  1. 希望厂商可以闭源商用你的库
    首选 LGPLv3(动态链接无限制,仅改库源码需开源)
  2. 完全放开无约束,不在乎别人闭源使用
    MIT / Apache 2.0

场景 5:想彻底放弃版权,任何人随便用,无需署名

CC0(适合小脚本、工具片段、素材代码)

场景 6:不想纯开源,限时免费商用,后期收费

BSL(商业源码协议,不属于 OSI 标准开源协议)

三、红线避坑清单(绝对不能混用)

  1. 闭源商业软件 禁止直接静态链接 GPLv2/v3 代码并对外分发
  2. 做在线 SaaS 产品,若依赖 AGPL 代码,整套业务代码必须开源
  3. Apache2.0 可兼容 MIT,但 MIT 代码不能自动获得专利豁免
  4. Linux 内核 GPLv2 有特殊例外,不可照搬普通 GPL 规则
  5. SSPL、BSL 不属于国际公认开源协议,商用有法律风险

四、极简一句话选型口诀

  • 企业闭源商用、怕专利纠纷 → Apache 2.0
  • 极简无约束、小型项目 → MIT
  • 开发第三方类库,允许别人闭源调用 → LGPLv3
  • 开源云服务,防止他人套壳做付费 SaaS → AGPLv3
  • 只要求修改文件开源,整体可闭源 → MPL 2.0
  • 完全放弃版权无限制 → CC0
  • 限制他人商用,阶段性开源 → BSL(非标准开源)

五、快速决策流程图(文字版)

  1. 是否对外提供线上网页 / SaaS 服务?
    是 → AGPLv3
    否 → 下一步
  2. 是否要打包二进制程序对外售卖分发?
    是 → Apache2.0 / MIT,避开 GPL
    否 → 下一步
  3. 项目是供别人调用的工具库?
    是 → LGPLv3
    否 → Apache2.0(企业)/ MIT(个人小项目)

 
laoluo
  • 本文由 laoluo 发表于2026年7月5日 06:38:43
  • 转载请务必保留本文链接:https://www.mydata-api.com/tutorials/356.html
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证