






















你在 GitHub 创建新项目的时候,License 选什么?
MIT?太慷慨了,大公司拿去白嫖一分钱不给。GPL?太极端了,个人用户也被传染条款吓跑。Apache 2.0?和 MIT 一样拦不住商业白嫖。
最现实的诉求其实是:个人开发者和小团队免费用,大企业想用在生产环境就得付费。
这个需求在 2023-2026 年已经有一套成熟的解决方案了。HashiCorp、MongoDB、Elastic、Sentry 这些公司都走过这条路。这篇文章把所有方案摊开来讲清楚。
OSI(Open Source Initiative)对"开源"有严格定义。以下所有方案都不是 OSI 认可的开源许可证。它们统称为 "Source-Available"(源码可见) 或 "Fair-Code"(公平代码)。
这不丢人。HashiCorp(Terraform)、MongoDB、Elastic(Elasticsearch)、Sentry 这些估值几十亿的公司都这么干。可持续的软件需要可持续的收入。
Business Source License 由 MariaDB 的创始人 Monty Widenius 设计,是目前最主流的"个人免费、企业付费"许可证。
Additional Use Grant 控制——作者可以允许或限制特定场景Change Date(默认首次发布后 4 年),自动转为开源许可证(GPLv2+)这是 BSL 最灵活的地方。你在里面写清楚什么场景免费:
Additional Use Grant: You may use this software for production purposes
with up to 3 server instances. For more than 3 instances, a commercial
license is required.
常见的写法:
- 按服务器数量限制(≤3 台免费)
- 按收入限制(年营收 < $1M 免费)
- 按用户数限制(< 5 用户免费)
- 按场景限制(非商业用途免费)
| 项目 | 原许可证 | 转换时间 | Additional Use Grant |
|---|---|---|---|
| HashiCorp Terraform | MPL 2.0 | 2023 | 非生产使用免费 |
| CockroachDB | — | 从一开始 | 非商业用途免费 |
| TimescaleDB | Apache 2.0 | 2018 | 非生产使用免费 |
| MariaDB MaxScale | — | 从一开始 | ≤3 实例免费 |
| Materialize | — | 从一开始 | 非生产使用免费 |
Functional Source License 是 2024 年 Sentry 团队设计的新许可证,解决了 BSL 的几个痛点。
| 维度 | BSL 1.1 | FSL |
|---|---|---|
| 文本长度 | 中等 | 短,更易读 |
| 默认延迟 | 4 年 | 2 年 |
| 转换目标 | GPLv2+ | Apache 2.0 或 MIT(你选) |
| 限制方式 | 限制生产使用 | 限制特定竞争性用途 |
| 变体 | 一种 | 两种(FSL-1.1-Alv2、FSL-1.1-MIT) |
Elastic License 2.0 是所有方案里文本最短、最容易理解的。
你不能:
1. 把软件作为托管/管理服务提供给第三方(用户能访问软件的核心功能)
2. 篡改许可证密钥功能你可以:
- 使用、复制、分发、修改
- 在组织内部使用
- 在此基础上构建产品
- 自己部署
ELv2 精准打击的是 "云厂商白嫖" — AWS 拿你的开源项目做成托管服务卖钱。它不影响:
- 个人开发者使用
- 企业内部使用
- 在你的软件基础上构建自己的产品
它只限制一件事:不能把软件本身当成服务卖。
| 项目 | 说明 |
|---|---|
| Elasticsearch + Kibana | 2021 年从 Apache 2.0 切换 |
| Airbyte | 数据集成平台 |
| OpenReplay | 会话回放工具 |
| Nango | 开源集成平台 |
Server Side Public License 基于 GPLv3,但加了一条极端条款。
如果你把 SSPL 软件的功能作为服务提供给第三方,你必须公开整个服务栈的源码——不仅是 SSPL 软件本身,还包括:
MongoDB 2018 年切到 SSPL,直接导火索是 AWS DocumentDB — Amazon 拿 MongoDB 的开源代码做成托管服务卖钱,一分钱不给 MongoDB。
SSPL 的设计目标就是让云厂商无法白嫖:你要么公开一切,要么买商业许可。
SSPL 提交给 OSI 审核,被拒绝了。理由是它要求公开"其他不相关的软件",违反了 OSD 第 9 条(不能限制一起分发的其他软件)。
Commons Clause 不是独立许可证,而是加在你现有许可证(Apache 2.0、MIT 等)上的一个额外条件。
你不能 Sell 这个软件。
"Sell" 的定义:把软件的功能作为产品或服务提供给第三方并收费(包括托管费、咨询费、支持服务费)。
如果你坚持要 OSI 认可的开源许可证,AGPL 双授权是唯一选择。
大多数有法律部门的公司有 "AGPL 黑名单" — 禁止在任何项目中使用 AGPL 软件。这意味着他们要么不用你的项目,要么付钱。通常会付钱。
| 项目 | 说明 |
|---|---|
| MongoDB | 2018 年之前用这个模式 |
| SugarCRM | CRM 系统 |
| Mautic | 营销自动化 |
| GitLab CE | MIT(但 EE 是专有的,类似模型) |
MERMAID_BLOCK_0
| 方案 | 适合场景 | 复杂度 | 采用率 | 推荐度 |
|---|---|---|---|---|
| FSL | 新项目,想 2 年后自动开源 | ⭐ | 增长中 | ⭐⭐⭐⭐⭐ |
| BSL 1.1 | 成熟项目,需要业界标准 | ⭐⭐ | 最高 | ⭐⭐⭐⭐ |
| ELv2 | 只想阻止云厂商卖托管服务 | ⭐ | 中高 | ⭐⭐⭐⭐ |
| AGPL 双授权 | 坚持 OSI 开源认证 | ⭐⭐ | 成熟 | ⭐⭐⭐ |
| Commons Clause | 已有项目,想最小改动 | ⭐ | 低 | ⭐⭐⭐ |
| SSPL | 不推荐 | ⭐⭐⭐ | 极低 | ⭐⭐ |
2026 年新项目:选 FSL。
理由:
1. 2 年后自动变 Apache 2.0/MIT,社区接受度高
2. 限制精准,不影响个人用户
3. 文本简洁,容易理解
4. Sentry 背书,有商业验证
已有项目想改许可证:选 BSL 1.1。
理由:
1. 最多公司用过,法律风险最低
2. GitHub 和各大平台都有支持
3. Additional Use Grant 灵活,可以精确控制免费范围
只想阻止云厂商:选 ELv2。
理由:
1. 最简洁,限制最精准
2. 不影响任何终端用户
3. Elastic 验证了它的有效性
FSL(推荐):到 https://fsl.software/ 下载对应变体,放到项目根目录的 LICENSE 文件。
BSL 1.1:
Business Source License 1.1
License text: https://mariadb.com/bsl11/
Parameters:
Additional Use Grant: You may use this work for non-production
purposes only. Production use requires a commercial license.
Contact license@example.com for details.
Change Date: 2028-01-01
Change License: Apache License 2.0
ELv2:从 https://www.elastic.co/licensing/elastic-license 获取文本。
## License
This project is licensed under the [Functional Source License (FSL)](LINK).
- ✅ Free for individual and non-commercial use
- ✅ Free for learning, development, and testing
- ✅ Automatically converts to Apache 2.0 after 2 years
- Production/commercial use requires a license — contact us
这一步必须在你接受第一个 PR 之前做。否则以后换许可证需要所有贡献者同意。
用 CLA Assistant 或在贡献指南里加:
## Contributing
By submitting a pull request, you agree to license your contribution
under the same license as this project, and grant the project maintainer
the right to re-license your contribution as part of future license changes.
{
"license": "SEE LICENSE IN LICENSE"
}
不要填标准 SPDX 标识符(如 "MIT"),因为 GitHub 的自动检测不支持这些非标准许可证。用 "SEE LICENSE IN LICENSE" 然后在 LICENSE 文件里写清楚。
license@yourproject.com 邮箱选 License 不是选最好看的那个,是选最适合你商业模式的那个。如果你想让个人免费用、企业付费,2026 年的最佳答案是 FSL 或 BSL 1.1。别自己造许可证——已经有足够好的轮子了。
作者: itech001
来源: 公众号:AI人工智能时代
主页: https://www.theaiera.cn,每日分享最前沿的AI新闻和技术。
本文首发于 AI人工智能时代,转载请注明出处。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。