一个开源项目一定需要一个开源协议,开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么。所以,开源规范的第一条规范就是选择一个合适的开源协议。那么有哪些开源协议,如何选择呢?接下来,我来详细介绍下。

开源协议

img

常见的开源协议

  1. MIT 许可证

    • 最宽松的许可证之一
    • 允许自由使用、修改、分发,甚至用于商业用途
    • 只要保留版权和许可声明即可
  2. Apache 许可证 2.0

    • 类似 MIT,但提供了专利授权的相关条款
    • 要求保留版权和许可声明
    • 声明对文件的修改
  3. GNU 通用公共许可证 (GPL)

    • 强制要求开源
    • 使用 GPL 的软件的衍生作品必须以相同的许可证发布
    • 分为 v2 和 v3 版本,v3 增加了更多限制
  4. BSD 许可证

    • 较为宽松,类似 MIT
    • 有多个版本(2-Clause, 3-Clause),主要区别在于对原作者的署名要求
  5. Mozilla 公共许可证 (MPL)

    • 介于 GPL 和宽松许可证之间
    • 允许将 MPL 代码与专有代码结合
    • 修改的 MPL 代码部分必须继续使用 MPL
  6. GNU 宽松通用公共许可证 (LGPL)

    • GPL 的变体,主要用于代码库
    • 允许非 GPL 软件链接 LGPL 库而不需要开源
  7. Creative Commons (CC) 许可证

    • 主要用于创意作品,不建议用于软件
    • 有多种组合,如 CC BY(署名), CC BY-SA(署名-相同方式共享)等
协议类型可以商用必须开源可以闭源专利保护
MIT
Apache
GPL
LGPL
BSD

选择建议

个人项目

  • 建议使用 MIT 协议
  • 简单、宽松、易理解、易传播

企业项目

  • 建议使用 Apache License 2.0
  • 提供专利保护
  • 商业友好

核心代码保护

  • 考虑使用 GPL
  • 确保代码持续开源