GitHub上常用的几种开源协议

简介: MIT Apache GUN BSD

开源协议?

开源协议是指一种规定软件源代码可以被任何人免费查看、使用、修改和分发的法律文档。开源协议的目的是促进软件社区的合作和创新,并确保开发者和用户在遵守协议条件的情况下享有相应的权利和义务。

开源协议通常包括以下几个方面的内容:

  • 授权许可:明确声明了软件的授权方式,即许可证的类型。

  • 源代码可用性:保证软件的源代码可以被获取和查看。

  • 修改权:允许用户对软件进行修改和改进。

  • 分发权:允许用户将软件的副本传播给其他人。

  • 禁止歧视:禁止以某种特定的用户群体、领域或企业为目标的歧视性限制。

  • 没有担保:明确声明软件的使用没有任何担保责任。

  • 知识产权:保护原作者的知识产权。

常见的开源协议包括GNU通用公共许可证(GPL)、MIT许可证、Apache许可证等。不同的开源协议具有不同的条款和要求,开发者在选择开源协议时需要根据自己的需求和意愿进行选择。

来看看GitHub上几种常用的开源协议

  • MIT

    MIT开源许可证是一种非常灵活的开源协议,允许使用、修改和分发受保护的软件。该协议几乎没有限制,允许任何人以任何方式使用软件,包括商业用途。

    根据MIT许可证,被许可人有权使用、复制、修改、合并、发布、分发、再授权和销售获得的软件副本,但需要在软件中包含原始版权和许可声明。

  • Apache License 2.0

    1. 权利授予:Apache License 2.0允许用户自由地使用、复制、修改、合并、发布、分发和销售软件。

    2. 开源要求:协议要求包含原始版权声明和许可协议的副本在所有的衍生作品中都需要保留。

    3. 没有担保:该协议明确声明作者或版权持有人不对软件提供任何形式的担保。用户需要自行承担使用软件的风险。

    4. 责任限制:协议明确规定作者或版权持有人不对任何损害赔偿负责,无论是合同诉讼、侵权行为还是其他情况。

    5. 版权声明:Apache License 2.0要求在所有的衍生作品中包含原始版权声明和许可协议的副本。

  • GUN General public License v3.0

    1. 共享源代码:使用GUN GPL v3.0协议的软件必须提供其完整的源代码,并允许其他人查看、修改和分发。

    2. 修改代码的自由:使用GUN GPL v3.0协议的软件可以被修改和扩展,但所有修改后的代码仍然必须遵守相同的协议并允许公开。

    3. 分发的义务:如果你分发了使用GUN GPL v3.0协议的软件,你必须同时提供源代码和许可证,以确保接收者能够获得相同的权益和自由。

    4. 反Tivoization条款:GUN GPL v3.0协议禁止将软件设计成不能在用户设备上运行修改版本的形式,以保护用户对软件的自由使用。

    5. 授权限制:GUN GPL v3.0协议不允许将GUN GPL v3.0许可协议与其他许可协议进行混合,除非这些许可协议与GUN GPL v3.0协议相兼容。

  • GUN Affero public License v3.0

    GUN Affero Public License v3.0基于GNU Affero General Public License v3.0(AGPLv3)进行了修改和补充。

    该许可协议要求任何使用或修改该软件的人,在向公众提供该软件的服务时,必须将对应的源代码也一同提供给用户。这意味着,如果您在服务器上运行基于GUN Affero Public License v3.0的软件,并通过网络向用户提供服务时,您需要提供源代码。

  • BSD2

    1. 在软件的所有副本和衍生作品中包含原始版权声明和许可声明。
    2. 禁止以原作者的名义进行促销软件的行为,除非获得了原作者的事先书面许可。
    3. 对于以二进制形式分发的软件,必须在文档和其他材料中提供与之相关的源代码的拷贝。
    4. 不对软件的使用、复制、修改、合并、出版、分发、再授权或销售做出任何限制。
    5. 软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性。
  • BSD3

    1. 保留版权:BSD3开源协议要求在源代码和二进制发布中包含原始版权声明。

    2. 免责声明:协议明确表示作者不对软件的任何损害或责任承担责任,使用者需自行承担风险。

    3. 分发限制:BSD3开源协议可以随意修改、分发和使用源代码和二进制文件,但不能用原作者的名字或机构名字来推销或认可修改后的产品。

  • Eclipse public License 2.0

    Eclipse Public License (EPL) 2.0被广泛用于管理和分发开源软件项目。该协议由Eclipse基金会制定,并在2004年发布。

    EPL 2.0保护了软件的版权,并允许开发者自由地使用、修改和分发被许可的软件。根据EPL 2.0,任何以源代码或二进制形式分发的衍生作品都需要遵循相同的许可条款。此外,EPL 2.0还规定开发者必须在他们的衍生作品中包含原始软件的版权声明、许可证和其他相关信息。

    EPL 2.0还包含了一些专利授权条款,允许开源软件在特定条件下使用专利技术。这为开发者提供了更多使用其他专利的灵活性和保护。

  • Creative Commons Zero v1.0 Universal

    Creative Commons Zero v1.0 Universal(简称CC0) 允许著作权持有人放弃对作品的所有权益,并将作品贡献给公共领域。这意味着任何人都可以自由地使用、复制、修改、分发和展示该作品,无需获得原始著作权持有人的许可。

    CC0协议的目标是为了最大限度地促进知识和创意的自由流动,并鼓励人们利用其他人的作品来创造新的作品。通过将作品置于公共领域,CC0协议消除了版权法所带来的限制,使作品能够被广泛地使用和改编。

    与其他开源协议不同,CC0没有要求使用者在使用作品时遵循特定的许可条件或提供说明原作者的要求。因此,CC0被认为是最具自由性的开源协议之一。

    CC0协议适用于任何类型的作品,包括文字、图片、音频和视频等。它适用于个人、组织和政府机构等各种著作权持有者。

相关文章
|
数据采集 监控 安全
Go语言在网络安全中的应用
【2月更文挑战第24天】Go语言,作为一种高效且易于维护的编程语言,近年来在网络安全领域得到了广泛的应用。本文旨在探讨Go语言在网络安全中的应用,包括其在防火墙、入侵检测、网络爬虫以及Web安全等方面的应用,并分析了Go语言在网络安全领域的优势与前景。
|
存储 NoSQL 算法
Redis之zset实现滑动窗口限流
Redis之zset实现滑动窗口限流
2551 0
Redis之zset实现滑动窗口限流
|
8月前
|
存储 SQL NoSQL
Redis-常用语法以及java互联实践案例
本文详细介绍了Redis的数据结构、常用命令及其Java客户端的使用,涵盖String、Hash、List、Set、SortedSet等数据类型及操作,同时提供了Jedis和Spring Boot Data Redis的实战示例,帮助开发者快速掌握Redis在实际项目中的应用。
659 1
Redis-常用语法以及java互联实践案例
|
Java 数据库连接 测试技术
SpringBoot 3.3.2 + ShardingSphere 5.5 + Mybatis-plus:轻松搞定数据加解密,支持字段级!
【8月更文挑战第30天】在数据驱动的时代,数据的安全性显得尤为重要。特别是在涉及用户隐私或敏感信息的应用中,如何确保数据在存储和传输过程中的安全性成为了开发者必须面对的问题。今天,我们将围绕SpringBoot 3.3.2、ShardingSphere 5.5以及Mybatis-plus的组合,探讨如何轻松实现数据的字段级加解密,为数据安全保驾护航。
1540 1
|
Docker 容器
docker 换国内镜像源,docker换源
docker 换国内镜像源,docker换源
12089 91
|
机器学习/深度学习 算法 数据可视化
决策树算法介绍:原理与案例实现
决策树算法介绍:原理与案例实现
|
存储
好看又规范的Github Readme 制作指南
本文是关于制作规范且外观吸引人的GitHub README文件的指南,包括了README的基本结构、美化技巧,以及如何使用Markdown格式、徽标和图片来增强文档的可读性和吸引力。
1952 0
|
存储 人工智能 搜索推荐
RAG系统的7个检索指标:信息检索任务准确性评估指南
大型语言模型(LLMs)在生成式AI领域备受关注,但其知识局限性和幻觉问题仍具挑战。检索增强生成(RAG)通过引入外部知识和上下文,有效解决了这些问题,并成为2024年最具影响力的AI技术之一。RAG评估需超越简单的实现方式,建立有效的性能度量标准。本文重点讨论了七个核心检索指标,包括准确率、精确率、召回率、F1分数、平均倒数排名(MRR)、平均精确率均值(MAP)和归一化折损累积增益(nDCG),为评估和优化RAG系统提供了重要依据。这些指标不仅在RAG中发挥作用,还广泛应用于搜索引擎、电子商务、推荐系统等领域。
8502 2
RAG系统的7个检索指标:信息检索任务准确性评估指南
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
145243 0
|
安全 网络安全 开发工具
【GitHub】清空 GitHub 仓库中的所有内容,只保留 `README.md` 文件
【GitHub】清空 GitHub 仓库中的所有内容,只保留 `README.md` 文件
848 2