【许可证】Open Source Licenses

长期更新


扩展:shield.io装饰

开源许可证(Open Source Licenses)有很多种,每种都有不同的授权和限制,适用于不同目的。

默认的ISC🟰MIT

License是否可商用是否要求开源衍生项目是否必须署名是否有专利授权特点
MIT✅ 是❌ 否✅ 是❌ 否非常宽松,适合最大范围使用
Apache 2.0✅ 是❌ 否✅ 是✅ 有类似 MIT,但有专利保护
GPLv3✅ 是✅ 是(强制)✅ 是✅ 有Copyleft 强制开源,适合理想主义者
LGPLv3✅ 是部分要求✅ 是✅ 有更宽松的 GPL,可用于商业库
BSD 2-Clause / 3-Clause✅ 是❌ 否✅ 是❌ 否和 MIT 类似,更简洁
MPL 2.0✅ 是✅ 是(仅修改部分)✅ 是✅ 有文件级别开源,适合公司使用
Unlicense✅ 是❌ 否❌ 否❌ 否完全放弃版权,相当于公共领域
  • 使用场景
    MIT:适合个人项目、工具库、想让别人随便用【常用】
    Apache 2.0:适合商业公司,希望有专利保护
    GPL:适合你坚持“开源必须回馈开源”的理念
    LGPL:适合你写的是第三方依赖库,希望商用项目也能用
    BSD:MIT 的替代品,少数企业偏好
    MPL:适合大型项目,比如浏览器,要求不太严格
    Unlicense / CC0:你不在乎版权,想让代码彻底归公用领域

使用

  • 其他人使用时需要注意
  1. 保留原始的版权声明
    无论是源代码文件、构建后的文件,还是其他分发版本,别人必须保留你原始代码中的 版权声明。这通常在代码文件的顶部或者 LICENSE 文件中。
/** Copyright (c) [年份] [你的名字或组织]* Licensed under the ISC License. See LICENSE file for details.*/
  1. 如果修改了代码,必须注明修改
    如果其他人在你的代码上做了修改,他们通常需要按照许可证的要求,在其修改的代码中注明是基于你的代码做的修改,并且保留原始的版权声明。
    这可能会出现在修改过的代码文件顶部,通常会写成类似以下内容:
/** Copyright (c) [年份] [原作者的名字或组织]* Modified by [修改者的名字]* Licensed under the ISC License. See LICENSE file for details.*/
  1. 在文档或 README 文件中注明
    如果他们在自己的项目中使用你的开源包,可以在项目的 README.md 文件或相关文档中提到你的版权信息和许可证声明。尤其是当项目涉及多个依赖时,很多开发者会在 README.md 文件中列出依赖的开源项目和它们的许可证类型。
  2. 对于 GPL 许可证的要求
    如果你使用的是 GPL 许可证,要求会更严格。除了在代码中保留版权声明,如果代码被修改并发布,修改后的源代码必须公开,并附带原始的版权声明和许可证信息。这意味着,用户必须在自己的分发版本中附上原始的许可证、版权声明,并且提供源代码。

ISC

虽然默认,但是也要加上LICENSE文件

ISC LicenseCopyright (c) [年份] [你的名字或组织]Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

MIT

通常放在你项目的根目录,文件名叫 LICENSE(无扩展名)
在 package.json 中加 “license”: “MIT”
在 GitHub 上建仓库时选择「MIT License」,GitHub 会自动帮你加上

把下面的[年份] [你的名字或组织名]整个替换掉

MIT LicenseCopyright (c) [年份] [你的名字或组织名]Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZooKeeper工作机制与应用场景

目录 1.1、概述1.2、选举机制1.2.1、选举触发条件1.2.2、选举规则1.2.3、选举过程详解 1.3、数据同步机制1.3.1、正常同步1.3.2、宕机同步 1.4、客户端常用命令1.5、应用场景1.5.1、配置管理1.5.2、命令服务1.5.3、分布式锁服务1.5.4、集群管理1.5.5、分布式ID1.5.6、分布式协调…

前端面经-VUE3篇(四)--pinia篇-基本使用、store、state、getter、action、插件

一、基本使用 1、什么是 Pinia? Pinia 是 Vue.js 的官方状态管理库,是 Vuex 的“升级版”。它专为 Vue 3 和 Composition API 设计,用于管理多个组件之间共享的数据(也叫“全局状态”)。 2、为什么需要状态管理库&a…

数据结构之图的遍历

图的遍历 图的遍历目的是访问图的每一个顶点恰好一次,,同时访问图中每条边恰好一 次。 对于无向图,常见的遍历方式有深度优先遍历(Depth-First Search, DFS) 和广度优先遍历(Breadth-First Search, BFS)。…

Ubuntu 第11章 网络管理_常用的网络配置命令

为了管理网络,Linux提供了许多非常有用的网络管理命令。利用这些命令,一方面可以有效地管理网络,另一方面出现网络故障时,可以快速进行诊断。本节将对Ubuntu提供的网络管理命令进行介绍。 11.2.1 ifconfig命令 关于ifconfig命令&…

Qt解决自定义窗口样式不生效问题

方法一: this->setAttribute(Qt::WA_StyledBackground, true); 方法二: 将类继承QWidget 改成继承 QFrame class MyWidget : public QFrame {} 方法三:重新实现QWidget的paintEvent函数时,使用QStylePainter绘制。 void p…

HNUST湖南科技大学-软件测试期中复习考点(保命版)

使用说明:本复习考点仅用于及格保命。软件测试和其他专业课不太一样,记忆的太多了,只能说考试的时候,想到啥就写啥,多写一点!多写一点!多写一点!(重要事情说三遍&#xf…

ES6 知识点整理

一、变量声明:var、let、const 的区别 作用域 var:函数作用域(函数内有效)。let/const:块级作用域({} 内有效,如 if、for)。 变量提升 var 会提升变量到作用域顶部(值为…

分布式爬虫去重:Python + Redis实现高效URL去重

1. 引言 在互联网数据采集(爬虫)过程中,URL去重是一个关键问题。如果不对URL进行去重,爬虫可能会重复抓取相同页面,导致资源浪费、数据冗余,甚至触发目标网站的反爬机制。 对于单机爬虫,可以使…

C# WPF 颜色拾取器

x:Name=Color Picker 语言:C# WPF 下载:https://download.csdn.net/download/polloo2012/90780640 主界面 颜色库 关于我们 颜色拾取器是一种能够帮助用户获取颜色信息,并进行颜色选择、识别和调整的工具,以下将从其常见类型、使用场景及部分软件工具这几个维度展开介绍…

Git 使用的全流程以及SourceTree工具的使用操作和忽略文件的配置

1. 安装 Git 要使用 Git,首先得在你的系统上安装它。你可以按照不同操作系统的安装指南来操作: Windows:访问 Git 官方下载页面,下载安装程序并运行。 macOS:可以使用 Homebrew 来安装,命令为 brew inst…

《深入理解Linux网络》笔记

《深入理解Linux网络》笔记 前言参考 前言 前段时间看了《深入理解Linux网络》这本书,虽然有些地方有以代码充篇幅的嫌疑,但总体来说还是值得一看的。在这里简单记录一下笔记,记录下对网络新的理解。 内核是如果接受网络包的? 如…

数仓-可累计,半累加,不可累加指标,是什么,举例说明及解决方案

目录 1. 可累计指标定义:举例:解决方案: 2. 半累加指标定义:举例:解决方案: 3. 不可累加指标定义:举例:解决方案: 4. 总结对比5. 实际场景中的注意事项 这是数据仓库设计…

NestJS 的核心构建块有哪些?请简要描述它们的作用(例如,Modules, Controllers, Providers)

NestJS 核心构建块解析(Modules、Controllers、Providers) NestJS 是一个基于 TypeScript 的渐进式 Node.js 框架,核心设计借鉴了 Angular 的模块化思想。下面从实际开发角度解析它的三大核心构建块,并附代码示例和避坑指南。 一…

vue2 上传pdf,拖拽盖章,下载图片

效果图片&#xff1a; 不多废话上代码&#xff1a; <template><div class"pdf-stamp" onbeforecopyreturn false onselectdocument.selection.empty() ondragstartreturn false onselectstart return false ><div class"scroll-box" scro…

理性地倾听与表达:检索算法的语言学改进

论文标题 Rational Retrieval Acts: Leveraging Pragmatic Reasoning to Improve Sparse Retrieval 论文地址 https://arxiv.org/pdf/2505.03676 代码地址 https://github.com/arthur-75/Rational-Retrieval-Acts 作者背景 巴黎萨克雷大学&#xff0c;索邦大学&#xff…

MySQL及线程关于锁的面试题

目录 1.了解过 MySQL 死锁问题吗&#xff1f; 2.什么是线程死锁&#xff1f;死锁相关面试题 2.1 什么是死锁&#xff1a; 2.2 形成死锁的四个必要条件是什么&#xff1f; 2.3 如何避免线程死锁&#xff1f; 3. MySQL 怎么排查死锁问题&#xff1f; 4.Java线上死锁问题如…

【Reality Capture 】Reality Capture1.5中文版安装教程(附安装包下载)

文章目录 一、Reality Capture1.5中文版安装教程二、拷贝中文补丁三、Reality Capture1.5中文版下载地址一、Reality Capture1.5中文版安装教程 1. Reality Capture v1.4.0汉化版安装包下载并解压 2. 运行EpicInstaller-15.17.1-4a91a118786f4c2aa3c0093b23f83863.msi 3. 更改…

SVG数据可视化设计(AI)完全工作流解读|计育韬

AI 的 SVG 创作极限在哪里&#xff1f;绝不是那些初级的流程图生成和粗糙的商业模型设计。以下是由我们 JZ Creative Studio 通过 Claude 和 Deepseek 开展的专业级 SVG Data Visualization 创作&#xff0c;应广大读者强烈要求&#xff0c;专程直播讲授了一期 AI 工作流分享。…

not a genuine st device abort connection的问题

1.魔法棒里面电机Settings 2.然后在Other里面把Enabled的钩子去掉

uv简单使用

通过uv创建项目和虚拟环境 初始化项目 uv init --package my-project 初始化一个名为 my-project 的新项目&#xff0c;并生成必要的文件结构。 创建虚拟环境 uv venv .venv 激活虚拟环境 # For Windows .venv\Scripts\activate# For macOS/Linux source .venv/bin/acti…