<p align="center"><img src="https://raw.githubusercontent.com/facebook/zstd/dev/doc/images/zstd_logo86.png" alt="Zstandard"></p>
__Zstandard__, or `zstd` as short version, is a fast lossless compression algorithm,
targeting real-time compression scenarios at zlib-level and better compression ratios.
It's backed by a very fast entropy stage, provided by [Huff0 and FSE library](https://github.com/Cyan4973/FiniteStateEntropy).
The project is provided as an open-source dual [BSD](LICENSE) and [GPLv2](COPYING) licensed **C** library,
and a command line utility producing and decoding `.zst`, `.gz`, `.xz` and `.lz4` files.
Should your project require another programming language,
a list of known ports and bindings is provided on [Zstandard homepage](http://www.zstd.net/#other-languages).
**Development branch status:**
[![Build Status][travisDevBadge]][travisLink]
[![Build status][AppveyorDevBadge]][AppveyorLink]
[![Build status][CircleDevBadge]][CircleLink]
[travisDevBadge]: https://travis-ci.org/facebook/zstd.svg?branch=dev "Continuous Integration test suite"
[travisLink]: https://travis-ci.org/facebook/zstd
[AppveyorDevBadge]: https://ci.appveyor.com/api/projects/status/xt38wbdxjk5mrbem/branch/dev?svg=true "Windows test suite"
[AppveyorLink]: https://ci.appveyor.com/project/YannCollet/zstd-p0yf0
[CircleDevBadge]: https://circleci.com/gh/facebook/zstd/tree/dev.svg?style=shield "Short test suite"
[CircleLink]: https://circleci.com/gh/facebook/zstd
## Benchmarks
For reference, several fast compression algorithms were tested and compared
on a server running Linux Debian (`Linux version 4.14.0-3-amd64`),
with a Core i7-6700K CPU @ 4.0GHz,
using [lzbench], an open-source in-memory benchmark by @inikep
compiled with [gcc] 7.3.0,
on the [Silesia compression corpus].
[lzbench]: https://github.com/inikep/lzbench
[Silesia compression corpus]: http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia
[gcc]: https://gcc.gnu.org/
| Compressor name | Ratio | Compression| Decompress.|
| --------------- | ------| -----------| ---------- |
| **zstd 1.3.4 -1** | 2.877 | 470 MB/s | 1380 MB/s |
| zlib 1.2.11 -1 | 2.743 | 110 MB/s | 400 MB/s |
| brotli 1.0.2 -0 | 2.701 | 410 MB/s | 430 MB/s |
| quicklz 1.5.0 -1 | 2.238 | 550 MB/s | 710 MB/s |
| lzo1x 2.09 -1 | 2.108 | 650 MB/s | 830 MB/s |
| lz4 1.8.1 | 2.101 | 750 MB/s | 3700 MB/s |
| snappy 1.1.4 | 2.091 | 530 MB/s | 1800 MB/s |
| lzf 3.6 -1 | 2.077 | 400 MB/s | 860 MB/s |
[zlib]: http://www.zlib.net/
[LZ4]: http://www.lz4.org/
Zstd can also offer stronger compression ratios at the cost of compression speed.
Speed vs Compression trade-off is configurable by small increments.
Decompression speed is preserved and remains roughly the same at all settings,
a property shared by most LZ compression algorithms, such as [zlib] or lzma.
The following tests were run
on a server running Linux Debian (`Linux version 4.14.0-3-amd64`)
with a Core i7-6700K CPU @ 4.0GHz,
using [lzbench], an open-source in-memory benchmark by @inikep
compiled with [gcc] 7.3.0,
on the [Silesia compression corpus].
Compression Speed vs Ratio | Decompression Speed
---------------------------|--------------------
![Compression Speed vs Ratio](doc/images/CSpeed2.png "Compression Speed vs Ratio") | ![Decompression Speed](doc/images/DSpeed3.png "Decompression Speed")
A few other algorithms can produce higher compression ratios at slower speeds, falling outside of the graph.
For a larger picture including slow modes, [click on this link](doc/images/DCspeed5.png).
## The case for Small Data compression
Previous charts provide results applicable to typical file and stream scenarios (several MB). Small data comes with different perspectives.
The smaller the amount of data to compress, the more difficult it is to compress. This problem is common to all compression algorithms, and reason is, compression algorithms learn from past data how to compress future data. But at the beginning of a new data set, there is no "past" to build upon.
To solve this situation, Zstd offers a __training mode__, which can be used to tune the algorithm for a selected type of data.
Training Zstandard is achieved by providing it with a few samples (one file per sample). The result of this training is stored in a file called "dictionary", which must be loaded before compression and decompression.
Using this dictionary, the compression ratio achievable on small data improves dramatically.
The following example uses the `github-users` [sample set](https://github.com/facebook/zstd/releases/tag/v1.1.3), created from [github public API](https://developer.github.com/v3/users/#get-all-users).
It consists of roughly 10K records weighing about 1KB each.
Compression Ratio | Compression Speed | Decompression Speed
------------------|-------------------|--------------------
![Compression Ratio](doc/images/dict-cr.png "Compression Ratio") | ![Compression Speed](doc/images/dict-cs.png "Compression Speed") | ![Decompression Speed](doc/images/dict-ds.png "Decompression Speed")
These compression gains are achieved while simultaneously providing _faster_ compression and decompression speeds.
Training works if there is some correlation in a family of small data samples. The more data-specific a dictionary is, the more efficient it is (there is no _universal dictionary_).
Hence, deploying one dictionary per type of data will provide the greatest benefits.
Dictionary gains are mostly effective in the first few KB. Then, the compression algorithm will gradually use previously decoded content to better compress the rest of the file.
### Dictionary compression How To:
1. Create the dictionary
`zstd --train FullPathToTrainingSet/* -o dictionaryName`
2. Compress with dictionary
`zstd -D dictionaryName FILE`
3. Decompress with dictionary
`zstd -D dictionaryName --decompress FILE.zst`
## Build instructions
### Makefile
If your system is compatible with standard `make` (or `gmake`),
invoking `make` in root directory will generate `zstd` cli in root directory.
Other available options include:
- `make install` : create and install zstd cli, library and man pages
- `make check` : create and run `zstd`, tests its behavior on local platform
### cmake
A `cmake` project generator is provided within `build/cmake`.
It can generate Makefiles or other build scripts
to create `zstd` binary, and `libzstd` dynamic and static libraries.
By default, `CMAKE_BUILD_TYPE` is set to `Release`.
### Meson
A Meson project is provided within [`build/meson`](build/meson). Follow
build instructions in that directory.
You can also take a look at [`.travis.yml`](.travis.yml) file for an
example about how Meson is used to build this project.
Note that default build type is **release**.
### Visual Studio (Windows)
Going into `build` directory, you will find additional possibilities:
- Projects for Visual Studio 2005, 2008 and 2010.
+ VS2010 project is compatible with VS2012, VS2013, VS2015 and VS2017.
- Automated build scripts for Visual compiler by [@KrzysFR](https://github.com/KrzysFR), in `build/VS_scripts`,
which will build `zstd` cli and `libzstd` library without any need to open Visual Studio solution.
### Buck
You can build the zstd binary via buck by executing: `buck build programs:zstd` from the root of the repo.
The output binary will be in `buck-out/gen/programs/`.
## Status
Zstandard is currently deployed within Facebook. It is used continuously to compress large amounts of data in multiple formats and use cases.
Zstandard is considered safe for production environments.
## License
Zstandard is dual-licensed under [BSD](LICENSE) and [GPLv2](COPYING).
## Contributing
The "dev" branch is the one where all contributions are merged before reaching "master".
If you plan to propose a patch, please commit into the "dev" branch, or its own feature branch.
Direct commi
没有合适的资源?快使用搜索试试~ 我知道了~
cmake-3.18.1.tar.gz
需积分: 5 2 下载量 16 浏览量
2022-06-14
10:02:23
上传
评论
收藏 8.55MB GZ 举报
温馨提示
共16438个文件
txt:4732个
cmake:4370个
rst:1727个
cmake-3.18.1.tar.gz
资源推荐
资源详情
资源评论
收起资源包目录
cmake-3.18.1.tar.gz (16438个子文件)
libboost_system.so.1.70.0 0B
libboost_timer.so.1.70.0 0B
libboost_chrono.so.1.70.0 0B
08cfcf221f76ace7b906b312284e73d7 8B
2af59a7022024974f3b8521b7ed8137c996a79f1 14B
archive_write_set_options.3 22KB
archive_entry_acl.3 14KB
libarchive_internals.3 13KB
archive_write_disk.3 12KB
archive_read_disk.3 10KB
libarchive_changes.3 10KB
archive_entry_stat.3 8KB
libarchive.3 8KB
archive_entry_perms.3 8KB
archive_write.3 7KB
archive_write_open.3 7KB
archive_read.3 7KB
archive_util.3 7KB
archive_read_open.3 7KB
archive_read_set_options.3 7KB
archive_write_format.3 6KB
archive_read_format.3 6KB
archive_entry_linkify.3 6KB
archive_entry_paths.3 6KB
archive_read_filter.3 5KB
archive_entry.3 5KB
archive_entry_time.3 5KB
archive_write_filter.3 4KB
archive_read_extract.3 4KB
archive_read_data.3 4KB
archive_write_blocksize.3 4KB
archive_write_data.3 3KB
archive_read_free.3 3KB
archive_write_free.3 3KB
archive_read_header.3 3KB
archive_write_finish_entry.3 3KB
archive_read_add_passphrase.3 2KB
archive_entry_misc.3 2KB
archive_write_set_passphrase.3 2KB
archive_write_header.3 2KB
archive_read_new.3 2KB
archive_write_new.3 2KB
30ba0acdee9096b3b9fc6c69362c6b42 9B
31eff09e84fca01415f8cd9d82ec432b 9B
3b679da7908562fe1cc28db47ffb89bae025f4551dceb343a5869174 14B
401767f22a456b3522953722090a2c36 8B
tar.5 31KB
libarchive-formats.5 18KB
cpio.5 10KB
mtree.5 8KB
85158f0c1996837976e858c42a9a7634bfe91b93 11B
8c018830e3efa5caf3c7415028335a57 32B
8f4add4581551facf27237e6577fd662 6B
969171a0dd70d49ce096bd3e8178c7e26c711c9b20dbcaa3853d869d3871f133 14B
9d980b06c2f0fec3d4872d68175b9822 6B
libPrefixInPATH.a 0B
libboost_chrono.a 0B
libboost_timer.a 0B
libboost_system.a 0B
libboost_mpi_python.a 0B
libboost_python_release.a 0B
libboost_date_time.a 0B
libboost_python.a 0B
libtest6.a 0B
libtest1.a 0B
libtest3.a 0B
libtest1.a 0B
libtest4.a 0B
libtest5.a 0B
libtest1.a 0B
libtest1.a 0B
libtest4.a 0B
libtest3.a 0B
libtest2.a 0B
libtest2.a 0B
libtest2.a 0B
libtest1.a 0B
libtest4.a 0B
libtest1.a 0B
libtest1.a 0B
libtest3.a 0B
libtest5.a 0B
libtestA.a 0B
libtest7.a 0B
libtest3.a 0B
libtest2.a 0B
libtest2.a 0B
libtest2.a 0B
libtest1.a 0B
libtest1.a 0B
libtest2.a 0B
libtestB.a 0B
libtest4.a 0B
libtest1.a 0B
aaad162b85f60d1eb57ca71a23e8efd7 40B
algorithm 9KB
algorithm 768B
Package.appxmanifest 1KB
bar.asm 144B
nop.asm 98B
共 16438 条
- 1
- 2
- 3
- 4
- 5
- 6
- 165
资源评论
GongYong
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 单相桥式全控整流MATALB Simulink仿真文件
- Dolby Vision安装包(解决杜比视界版本高清片源颜色不正问题)
- Python实现的简单二叉堆(最小堆)示例
- 嵌入式基础学习资料0000
- content_1714465331721.xls
- HM3401-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- Chainbase+Web3+APi+Data warehouse
- HM3401D-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- GEE案例-1990-2023年计算某个区域的NDVI时序变化轨迹(以徐州市为例)含全部代码.pdf
- HM3401C-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功