博主在创建一个新的Github项目时,突然发现自己对Github提供的14个许可证选项没有基本的概念,除了None ,于是查阅完资料后就有了这篇记录的文章。
目录
- None(无许可证)
- Apache License 2.0
- GNU General Public License v3.0 (GPLv3)
- MIT License
- BSD 2-Clause "Simplified" License
- BSD 3-Clause "New" or "Revised" License
- Boost Software License 1.0
- Creative Commons Zero v1.0 Universal (CC0)
- Eclipse Public License 2.0 (EPL-2.0)
- GNU Affero General Public License v3.0 (AGPLv3)
- GNU General Public License v2.0 (GPLv2)
- GNU Lesser General Public License v2.1 (LGPLv2.1)
- Mozilla Public License 2.0 (MPL-2.0)
- 总结对比
- 急急国王看这里➡️白话口诀
None(无许可证)
这就不用说了吧。Emm,还是说一下吧:
默认的无许可证,保留所有权利。他人无权复制、修改或分发代码,仅可以查看和Fork。
大白话解释:代码是你私藏的宝贝,别人只能看不能碰。想用?得先找你授权,否则违法!
适用:个人项目或不想分享的代码。
Apache License 2.0
宽松许可证,允许商业使用、修改和分发,需保留版权声明和许可证文件。包含明确的专利授权条款,保护用户免受专利诉讼。
大白话解释:随便用!商用、改代码、闭源都行,但得在代码里写上“这玩意儿最初是XXX家的”,而且原作者不背锅(比如代码有bug别找他们)。
附加福利:用了也不会被原作者用专利告你。
适用场景:大厂最爱,因为安全又自由,适用于企业级项目、需专利保护的开源软件(如Android、Kafka)。
GNU General Public License v3.0 (GPLv3)
具有强传染性(Copyleft),要求派生作品必须以相同许可证开源。禁止硬件限制(如Tivoization),明确专利授权。
大白话解释:用了我的代码,你的代码也得开源!像“病毒”一样传染,防止有人白嫖后闭源赚钱。
适用场景:想强制开源的项目(如Linux)。
MIT License
极宽松,仅需保留版权声明即可自由使用(包括闭源商业项目)。
大白话解释:最佛系协议!随便改随便卖钱,只要保留原作者的署名,其他啥都不管。
适用场景:个人项目或希望广泛传播的代码(如jQuery、Rails)。
BSD 2-Clause “Simplified” License
允许自由使用和修改,需保留版权声明和免责声明,无其他限制。
大白话解释:和MIT差不多,但多一句“别用我的名字打广告”。
适用场景:学术或商业项目(如FreeBSD)。
BSD 3-Clause “New” or “Revised” License
在BSD 2-Clause基础上增加条款,禁止用作者名义推广衍生作品。
大白话解释:在BSD 2-Clause基础上加一条——“别让用户以为我给你的代码代言”。
适用场景:需避免品牌混淆的项目,也就是怕品牌被蹭的项目。
Boost Software License 1.0
类似MIT,但更简短,允许无条件使用(包括专利授权),仅需保留版权声明。
大白话解释:和MIT一样宽松,但条款更短,连“别告我”都懒得写,全靠自觉。
适用场景:追求极简的软件和库。
Creative Commons Zero v1.0 Universal (CC0)
放弃版权,将代码置于公共领域,允许任何用途且无需署名。
大白话解释:直接放弃版权!代码白送,爱咋用咋用,连署名都不用。
适用场景:希望完全放弃权利的项目(如部分文档或工具、某些数据集)。
Eclipse Public License 2.0 (EPL-2.0)
商业友好,允许闭源衍生作品,但修改后的文件需开源。
大白话解释:商用可以,但如果你改了代码,改的部分得开源。
适用场景:企业级开源工具(如Eclipse IDE)。
GNU Affero General Public License v3.0 (AGPLv3)
类似GPLv3,但要求网络服务提供方提供修改后的源代码。
大白话解释:GPLv3的加强版!哪怕你只把代码放网上让人用(比如SaaS),也得开源。
适用场景:SaaS或云服务项目(如MongoDB)。
GNU General Public License v2.0 (GPLv2)
与GPLv3类似,但无专利授权条款,传染性稍弱。
大白话解释:和GPLv3类似,但没管“专利问题”,老项目还在用(如Linux旧版本)。
GNU Lesser General Public License v2.1 (LGPLv2.1)
允许动态链接到闭源软件,但修改库代码需开源。
大白话解释:用我的库可以闭源,但直接改库代码的话,改的部分得开源。
适用场景:可能被商业软件引用的库或框架(如Open CASCADE、GTK)。
Mozilla Public License 2.0 (MPL-2.0)
文件级开源,修改的文件需开源,其余可闭源。
大白话解释:改了我的文件?那这些文件得开源,其他随便你。
适用场景:需混合开源与专有代码的项目(如Firefox)。
14. The Unlicense
完全放弃版权,无任何限制(包括免责声明)。
大白话解释:和CC0一样,放弃一切权利,彻底躺平。
适用场景:希望彻底放弃控制的代码(如部分小型工具),换句话说就是想进公共领域的代码。
总结对比
从商业友好、修改要求、专利保护、传染性方面对比:
许可证 | 商业友好 | 修改要求 | 专利保护 | 传染性 |
---|---|---|---|---|
MIT / BSD / Boost | 高 | 保留声明 | 无 | 无 |
Apache 2.0 | 高 | 保留声明+修改说明 | 有 | 无 |
GPL/AGPL | 低 | 必须开源 | 有(GPLv3+) | 强 |
MPL-2.0 | 中 | 文件级开源 | 有 | 弱 |
急急国王看这里➡️白话口诀
- 想闭源赚钱:MIT / BSD / Apache
- 怕被告:Apache有专利保护
- 逼人开源:GPL / AGPL
- 放弃治疗:CC0 / Unlicense