lz4
LZ4 是一种无损压缩算法。
许可证
此存储库使用 2 个不同的许可证:
\- lib
目录中的所有文件均使用 BSD 2-Clause 许可证
\- 所有其他文件均使用 GPLv2 许可证,除非另有明确说明
相关许可证在每个源文件的顶部提醒,并且在相关目录中存在 COPYING 或 LICENSE 文件。
选择此模型是为了强调 lib
目录中的文件旨在包含到第三方应用程序中,而 programs
、tests
或 examples
中的所有其他文件,在这种情况下受到的关注和支持比较有限。
保留所有权利。
请参阅 http://spdx.org/licenses/BSD-2-Clause
只要满足以下条件,允许以源代码和二进制格式进行重新分发和使用,而无论是否作出修改:
-
重新分发源代码必须保留上述版权声明、此条件列表和以下免责声明。
-
以二进制格式重新分发必须在分发时提供的文档和/或其他材料中复制上述版权声明、此条件列表和以下免责声明。
本软件由版权持有人和贡献者按“现状”提供,且不承诺任何明示或默示的保证,包括但不限于有关适销性和特定用途适用性的保证。在任何情况下,版权持有人或贡献者对于无论何种原因或基于任何责任理论而导致的任何直接的、间接的、附带的、特殊的、惩戒性的或后果性的损害(包括但不限于获得替代商品或服务、无法使用、数据或利润的损失或者业务中断)均不承担责任,也不会对在使用本软件的过程中引起的合同、严格责任或侵权行为(包括过失或其他行为)负责,即使已被告知有可能发生该等损害。
版权所有 (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
任何均可复制和分发本许可文件的完整副本,但不得擅自更改。
前言
大多数软件的许可证旨在剥夺您共享和更改它的自由。相比之下,GNU 通用公共许可证旨在保证您共享和更改自由软件的自由,以确保该软件对其所有用户都是免费的。此通用公共许可证适用于大多数 Free Software Foundation 的软件以及作者承诺使用它的任何其他程序。(GNU 库通用公共许可证涵盖了其他一些 Free Software Foundation 软件。)您也可以将其应用到您的程序中。
当我们谈到自由软件时,我们指的是自由,而不是价格。我们的通用公共许可证旨在确保您可以自由分发自由软件的副本(如果您愿意,也可以为此服务收费),确保您接收源代码或可以根据需要获得它,确保您可以更改软件或在新的自由程序中使用其中的一部分;并且确保您知道您可以做这些事情。
为了保护您的权利,我们需要做出限制,禁止任何人否认您的这些权利或要求您放弃这些权利。如果您分发软件的副本或修改它,这些限制将转化为您的某些责任。
例如,如果您分发此类程序的副本,无论是免费还是收费,您都必须赋予收件人您拥有的所有权利。您必须确保他们也收到或可以获得源代码。您必须向他们展示这些条款,以便他们了解自己的权利。
我们通过两个步骤保护您的权利:(1) 为软件提供版权,以及 (2) 向您提供此许可,授予您复制、分发和/或修改软件的合法许可。
此外,为了保护每一位作者和我们,我们希望确保每个人都明白该自由软件没有任何保证。如果该软件被他人修改并传播,我们希望它的接收者知道他们所拥有的并非原创,这样别人引入的任何问题都不会影响原作者的声誉。
最后一点,任何自由程序都不断受到软件专利的威胁。我们希望避免自由程序的再分发者将单独获得专利许可的危险,这实际上使程序成为专有的。为了防止这种情况发生,我们已经明确表示,任何专利都必须获得许可,供所有人免费使用,或者根本不获得许可。
精准复制、分发和修改条款和条件如下。
复制、分发和修改的条款和条件
0。本许可证适用于任何程序或其他作品,其中包含版权持有人发出的声明,称其可以根据本通用公共许可证的条款分发。下面的“程序”是指任何此类程序或作品,“基于该程序的作品”是指该程序或版权法下的任何衍生作品:也就是说,包含该程序或其中一部分的作品,无论是原版还是经过修改和/或翻译成另一种语言。(在下文中,“修改”一词包括但不限于翻译。)每位被许可人均称为“您”。
本许可证不涵盖复制、分发和修改以外的活动;它们超出了它的范围。运行本程序的行为不受限制,仅当其内容构成基于本程序的作品(与运行本程序无关)时,才涵盖本程序的输出。这是否属实取决于程序的作用。
- 您可以以任何媒介复制和分发您收到的程序源代码的完整副本,前提是您在每个副本上显着且适当地发布适当的版权声明和保证免责声明;保持所有涉及本许可和不提供任何保证的声明完整;并将本许可的副本与本程序一起提供给本程序的任何其他接收者。
您可以对传输副本的实际行为收取费用,并且您可以选择提供保证保护以换取费用。
- 您可以修改您的一个或多个程序副本或其任何部分,从而形成基于该程序的作品,并根据上述第 1 条的条款复制和分发此类修改或作品,前提是您也满足所有这些条件:
a) 您必须使修改后的文件带有明显的声明,说明您更改了文件和任何更改的日期。
b) 您必须根据本许可的条款,将您分发或发布的全部或部分包含或衍生自本程序或其任何部分的任何作品作为整体免费许可给所有第三方。
c) 如果修改的程序在运行时通常以交互方式读取命令,则您必须使其在开始运行以最普通的方式进行交互使用时打印或显示公告,包括适当的版权声明和不提供保证的声明(或反之,表示您提供保证)以及声明用户可以在这些条件下重新分发程序,并告诉用户如何查看本许可的副本。(例外:如果程序本身是交互式的,但无法正常打印此类公告,打印公告不需要您基于该程序的作品。)
这些要求适用于整体修改后的作品。如果该作品的可标识部分并非源自本程序,并且可以合理地认为其本身是独立且独立的作品,则当您将这些部分作为单独的作品分发时,本许可及其条款不适用于这些部分。但是,当您将相同的部分作为基于本程序的作品的整体的一部分分发时,整体的分发必须遵守本许可的条款,其对其他许可接收方的许可扩展到整个整体,因此也适用于每一个部分,无论编写者是谁。
因此,此部分的目的不是索取或质疑您对完全由您撰写的作品的权利,而是行使控制基于该程序的衍生作品或集体作品的分发的权利。
此外,仅将不基于本程序的其他作品与本程序(或基于本程序的作品)聚合在存储或分发介质的卷上,并不会将其他作品纳入本许可的范围。
- 您可以根据上述第 1 节和第 2 节的条款,以目标代码或可执行形式复制和分发程序(或基于该程序的作品,参阅第 2 节),前提是您还执行以下操作之一:
a) 随附完整的相应机器可读源代码,该源代码必须根据上述第 1 节和第 2 节的条款分发在通常用于软件交换的介质上;或者,
b) 随附一份至少有效期为三年的书面报价,以不超过您实际执行源代码分发成本的费用,向任何第三方提供一份相应源代码的完整机器可读副本,这些源代码将根据上述第 1 节和第 2 节的条款以通常用于软件交换的介质分发;或者,
c) 随附您收到的有关分发相应源代码的报价的信息。(此替代方案仅适用于非商业分发,并且仅当您收到带有此类报价(根据上述 b 小节)的目标代码或可执行形式的程序时。)
作品的源代码是指对作品进行修改的首选形式。对于可执行作品,完整的源代码意味着它包含的所有模块的所有源代码,加上任何相关的接口定义文件,以及用于控制可执行文件的编译和安装的脚本。但是,作为一项特殊的例外,分发的源代码不需要包含任何通常与运行可执行文件的操作系统的主要组件(编译器、内核等)一起分发的东西(以源代码或二进制形式),除非该组件本身附带可执行文件。
如果通过提供对指定位置副本的访问权限来分发可执行代码或目标代码,则提供从同一位置复制源代码的等效访问权限被视为分发源代码,即使第三方没有被强制复制源代码和目标代码。
-
除非本许可明确规定,否则您不得复制、修改、分许可或分发本程序。以其他方式复制、修改、分许可或分发本程序的任何尝试均无效,将自动终止您在本许可项下的权利。但是,根据本许可从您那里收到副本或权利的各方将不会终止其许可,只要这些各方完全遵守。
-
您不需要接受此许可,因为您尚未签署它。但是,没有任何其他文件授予您修改或分发本程序或其衍生作品的许可。如果您不接受此许可,这些行为将受到法律禁止。因此,通过修改或分发本程序(或基于本程序的任何作品),您表示您接受本许可,以及其复制、分发或修改本程序或基于本程序的作品的所有条款和条件。
-
每次您重新分发本程序(或任何基于本程序的作品)时,接收者会自动从原始许可方处收到许可,以根据这些条款和条件复制、分发或修改本程序。您不得对接收者行使本协议授予的权利施加任何进一步的限制。您无义务强制第三方遵守本许可。
-
如果由于法院判决或专利侵权指控或任何其他原因(不限于专利问题),对您施加的条件(无论是通过法院命令、协议还是其他方式)与本许可的条件相抵触,则这些条件不会免除您遵守本许可的条件。如果您无法分发以同时履行您在本许可项下的义务和任何其他相关义务,则您可能根本无法分发该程序。例如,如果专利许可不允许所有直接或间接通过您接收副本的人免费重新分发该程序,则您可以同时满足它和本许可的唯一方法是完全避免分发该程序。
如果本节的任何部分在任何特定情况下被认定为无效或不可执行,则该节的其余部分旨在适用,而该节作为一个整体旨在适用于其他情况。
本节的目的不是诱使您侵犯任何专利或其他产权主张或质疑任何此类主张的有效性;本节的唯一目的是保护自由软件分发系统的完整性,该系统通过公共许可实践实施。许多人依靠该系统的一致应用为通过该系统分发的各种软件做出了巨大的贡献。由作者/捐赠者决定他或她是否愿意通过任何其他系统分发软件,并且许可接收方不能强加该选择。
此部分旨在彻底阐明什么被认为是本许可其余部分的后果。
-
如果程序的分发和/或使用在某些国家/地区受到专利或受版权保护的界面的限制,则将程序置于本许可下的原始版权持有人可以添加明确的地理分发限制,不包括这些国家/地区,以便仅允许在未被排除在外的国家之中或之间分发。在这种情况下,本许可包含限制,就好像写在本许可的正文中一样。
-
Free Software Foundation 可能会不时发布通用公共许可证的修订版和/或新版本。此新版本在理念方面与当前版本很相像,但是在解决新问题或新关切的细节方面可能有所不同。
每个版本都分配了区别于其他版本的版本号。如果本程序指定了适用于它的本许可证的版本号和“任何更高版本”,您可以选择遵循该版本或 Free Software Foundation 发布的任何更高版本的条款和条件。如果本程序未指定本许可证的版本号,您可以选择 Free Software Foundation 曾经发布的任何版本。
- 如果您希望将本程序的部分内容合并到其他分发条件不同的自由程序中,请给作者写信申请许可。对于 Free Software Foundation 拥有版权的软件,请写信给 Free Software Foundation;我们有时会为此破例。我们的决定将遵循两个目标,即保持我们自由软件的所有衍生产品的自由状态,以及促进软件的普遍共享和重用。
无保证
-
由于本程序为免费许可,因此在适用法律允许的范围内,对本程序不提供任何保证。除非另以书面形式规定,否则版权持有人和/或其他方将按“现状”提供程序,且无任何明示或默示的保证,包括但不限于有关适销性和特定目的适合性的默示保证。您需要承担与程序的质量和性能相关的全部风险。如果程序经证明存有瑕疵,您将承担所有必要的维护、修复和更正费用。
-
在任何情况下,除非适用法律要求或书面同意,任何版权持有人或任何其他可能根据上述许可修改和/或重新分发本程序的各方均不对您的损害承担责任,包括因使用或无法使用本程序而引起的任何一般、特殊、附带或后果性损害(包括但不限于数据丢失或数据不准确或者您或第三方遭受的损失或本程序无法与任何其他程序一起运行),即使此类持有人或其他方已被告知有可能发生该等损害。