有哪些开源协议?

目前存在多种开源协议,它们各自有不同的特点和适用场景,旨在保护开发者权利的同时促进软件的共享和协作。以下是几种常见的开源协议:

  1. MIT License(麻省理工学院许可证)

    • 非常宽松的许可,基本上允许你做任何事情,只要包含原始版权和许可声明。
    • 适合希望代码能够被广泛使用的项目。
  2. Apache License 2.0(Apache 2.0许可证)

    • 提供专利授权保护,要求任何基于该软件的作品在发布时也要提供相同的授权条款。
    • 适用于企业级项目,特别是那些关注专利授权的项目。
  3. GNU General Public License (GPL)

    • 有两种主要版本,GPLv2和GPLv3,强调“Copyleft”原则,即如果你修改并发布了基于GPL软件的作品,你也必须以GPL发布你的修改版。
    • GPL确保衍生作品保持开源状态,适用于希望确保代码保持开放的项目。
  4. GNU Lesser General Public License (LGPL)

    • 相较于GPL更为宽松,允许与非开源软件链接,而不强制整个作品开源。
    • 适用于库或框架,使得它们可以在非开源应用中使用。
  5. Mozilla Public License 2.0 (MPL 2.0)

    • 类似于LGPL,允许在非开源产品中使用,但修改后的源代码必须开源。
    • 适用于希望源代码改动能回馈社区,但又不想强加GPL那样严格的条件的项目。
  6. Berkeley Software Distribution (BSD) Licenses

    • 包括2-clause BSD、3-clause BSD和4-clause BSD等多个版本,都非常宽松,几乎与MIT相似,但某些旧版本有额外的要求(如广告条款)。
    • 适合想要最小限制的项目。
  7. Creative Commons (CC) Licenses

    • 虽然主要是为创意作品设计,但也有一部分被用于软件文档或其他内容。有多种变体,如CC BY(署名)、CC BY-SA(署名-相同方式共享)等。
    • 不是最典型的软件许可证,但在某些混合内容项目中使用。
  8. Eclipse Public License (EPL):

    • EPL是一种较宽松的协议,要求衍生作品必须在相同的EPL协议下发布,但如果作品是单独的模块,则可以使用不同协议。
    • 适合希望鼓励模块化开发和重用的项目。
  9. Common Development and Distribution License (CDDL):

    • 受Mozilla Public License影响,CDDL强调对专利的保护,并要求修改后的作品在相同的CDDL下发布。
    • 适用于需要较强专利保护策略的开源项目。
  10. Attribution Assurance License (AAL):

    • 类似于GPL,但重点在于确保贡献者得到署名,适合重视贡献者名誉权的项目。
  11. Artistic License (和Artistic License 2.0):

    • 最初为Perl语言设计,旨在平衡自由使用和保护作者的意愿。2.0版本更清晰地定义了许可条款。
    • 适用于特定社区或有特殊文化背景的项目。
  12. SIL Open Font License (OFL):

    • 专为字体设计的开源协议,允许自由使用、修改和分发字体,但要求衍生字体使用不同的名称。
    • 适用于开源字体项目。
  13. Cocoapods License:

    • 虽然不是一个独立的开源协议,但Cocoapods是一个iOS和MacOS开发的依赖管理工具,它处理了许多开源库的许可证问题,确保开发者遵守所使用的库的许可证。

这些只是众多开源协议中的一部分,开源促进组织(Open Source Initiative, OSI)已经认可了超过80种不同的开源许可协议,每种都有其特定的用途和适用范围。选择合适的开源协议需考虑项目的具体需求、与其他开源组件的兼容性以及对下游用户的期望。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/586387.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Spring Boot导出数据到Excel表格

在开发应用程序时,经常会遇到将数据导出到Excel表格的需求。Spring Boot提供了简单而有效的方法来实现这个功能。本文将介绍如何使用Spring Boot和Apache POI库将数据导出到Excel表格,并提供一个示例代码来演示该过程。 1. 准备工作 首先,确…

从Paint 3D入门glTF

Paint 3D Microsoft Paint 3D是微软的一款图像编辑软件,它是传统的Microsoft Paint程序的升级版。 这个新版本的Paint专注于三维设计和创作,使用户可以使用简单的工具创建和编辑三维模型。 Microsoft Paint 3D具有直观的界面和易于使用的工具&#xff0…

C语言入门课程学习笔记-7

C语言入门课程学习笔记-7 第31课 - 初探程序中的函数实验-函数调用实验-函数求前n个正整数和 第32课 - 深入浅出函数调用第33课 - 函数定义细节剖析实验-返回int实验-返回void 第34课 - 函数参数深度剖析实验-形参实参实验-数组元素作为函数形参小结 第35课 - 编写函数对数组排…

WebAuthn 无密码身份认证

文章目录 WebAuthn简介工作原理组成部分架构实现注册认证应用场景案例演示 WebAuthn简介 WebAuthn,全称 Web Authentication,是由 FIDO 联盟(Fast IDentity Online Alliance)和 W3C(World Wide Web Consortium&#x…

cisp证有用吗?

CISP证书肯定是有用的!就像你说的,少一个证不如多一个证,总比“证到用时方恨少”的好!既然你想往网络安全方向发展,考个CISP还是有必要的,CISP目前考试比较简单,拿证书还是比较容易的&#xff0…

【天龙怀旧服】攻略day8

关键字: 高血祭学习、角色伤害、幻魂升级 1】高血祭学习是否需要花费99金 珍兽手动技能分为分开阳类/破军类 高血祭属于开阳类 当已学会开阳类(如肉墙)学习高血祭,仅需1.70金,属于替换 而已学会破军类(…

GitLab常用指令!(工作中常用的)

目录 克隆代码创建分支切换分支将代码提交到分支当中Merge合并 克隆代码 复制完地址,打开Git Bash,然后 git clone “复制的地址”创建分支 创建new_test分支 git branch new_test切换分支 切换到new_test分支 git checkout new_test将代码提交到分…

element的el-table 解决表格多页选择数据时,数据被清空

问题:切换页码时,勾选的数据会被清空 重点看我圈出来的,直接复制,注意,我这里 return row.productId;一般大家的是 return row.id,根据接口定的唯一变量 :row-key"getRowKeys"​​​​​​​:reserve-sele…

预编码算法学习笔记

文章目录 1. 基本原理2. 常见应用2.1 自编码器2.2 变分自编码器2.3 稀疏自编码器 3. 学习笔记 在机器学习领域,预编码算法是一种强大的工具,用于将高维数据映射到低维表示,从而提取数据中的重要特征。本文将介绍预编码算法的基本原理、常见应…

Spring - 9 ( 10000 字 Spring 入门级教程 )

一: MyBatis XML 配置文件 Mybatis 的开发有两种方式: 注解XML 我们已经学习了注解的方式, 接下来我们学习 XML 的方式 MyBatis XML 的方式需要以下两步: 配置数据库连接字符串和 MyBatis写持久层代码 1.1 配置连接字符串和 MyBatis 此步骤需要进…

04 Docker练习赛从0开始到 docker 镜像提交

1.1 本地安装 docker 工具 这里以ubutun下安装docker为例,其他操作系统安装命令略有不同,可自行百度。(建议使用阿里源安装速度快) sudo apt install docker.io如果你本地有gpu,请继续执行如下命令以支持gpu调用: 注意: 英伟达对 docker 支持的 linux 发行版:https:/…

虹科Pico汽车示波器 | 免拆诊断案例 | 起动机免拆诊断故障 2 例

电磁开关、换向器烧蚀及炭刷磨损均会导致起动机偶尔不工作,使发动机偶尔无法起动。由于故障是偶发的,且没有故障代码,这往往会让维修人员无从下手,而用Pico示波器测量起动电流,就会让这些“亚健康状态”一目了然。 案例…

逆向第一步 去掉debugger(无任何门槛小白可学习)

准备工具 1.ReRes 地址:ReRes 用法: 用法 2.nodepad 地址:nodepad 注意下载后缀为.x64.exe版本的 我这里下的npp.8.6.5.Installer.x64.exe 3给nodepad装上JSTool插件 下载 可省略下叙详细步骤点此链接直接下载 JSToolNpp 然后到导…

Instal IIS on Windows Server 2022 Datacenter

和以往版本一样,没有什么不同,So easy! WinR - ServerManager.exe 打开服务器管理器,点击【添加角色和功能】,选择自己想要的角色和功能。 一、开始之前:帮助说明,点击【下一步】;…

GZIP格式解析和Deflate静态Huffman解压缩

GZIP是封装了Deflate压缩的格式文件,Deflate使用了无压缩、HuffmanLZ77进行压缩,Huffman包括静态Huffman和动态Huffman。 Java实现了GZIP格式解析,静态Huffman解压缩,CRC32校验 gzip文件格式解析代码: BinaryInputSt…

Docker容器---docker-Consul部署

一、Docker-consul简介 1、概述 consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Raft算法,用来保证服务的高可用。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多…

Java Maven 编译资源文件拷贝错误 dirCompressed.zip failed with MalformedInputException:

完整的错误信息为: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.1:resources (default-resources) on project core-java-io: filtering C:\WorkDir\Repository\iSharkfly-Docs\java-tutorials\core-java-modules\core-ja…

基于ssm+vue+Mysql的房屋租赁系统求租合同

开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.…

JAVA前端快速入门基础_javascript入门(02)

写在前面:本文用于快速学会简易的JS,仅做扫盲和参考作用 1.JavaScript函数 什么是函数:执行特定任务的代码块 1.1定义: 使用function来进行定义(类似于python里面的def 或者java和c里面的void,int这些返回类型开头)。定义规则如下: func…

【17】JAVASE-集合专题【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture:波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。…
最新文章