zstd
1.1、zstd简介
是什么 ?:a real-time compression library which provides high compression ratios.
开发语言:C
开发公司:Facebook
官方主页:https://facebook.github.io/zstd
源码仓库:https://github.com/facebook/zstd
1.2、通过包管理器安装zstd
操作系统包管理器安装命令
Allvcpkg
vcpkg install zstd
vcpkg install zstd:x64-osx
vcpkg install zstd:x64-linux
vcpkg install zstd:x64-windows
Windowsscoopscoop install zstd
WindowsChocolateychoco install -y zstandard
macOSHomeBrewbrew install zstd
GNU/LinuxLinuxBrewbrew install zstd
aptsudo apt-get install -y zstd1g zstd1g-dev
CentOSyumsudo yum install -y zstd zstd-devel
dnfsudo dnf install -y zstd zstd-devel
openSUSEzyppersudo zypper install -y zstd zstd-devel
Alpine Linuxapksudo apk add zstd

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm zstd
Gentoo LinuxPortagesudo emerge zstd
1.3、通过编译源码安装zstd

step1、安装依赖

下载时cURL
解压时targzip
编译时CMakeGNU makeGCC ( gcc )   | LLVM / Clang
运行时glibc ( libc.solibpthread.sold-linux-x86-64.so )

step2、使用curl命令下载zstd源码包 (

curl -LO https://github.com/facebook/zstd/releases/download/v1.4.4/zstd-1.4.4.tar.gz

step3、使用tar解压zstd源码包

tar vxf zstd-1.4.4.tar.gz

step4、进入zstd-1.4.4目录

cd zstd-1.4.4

step5、查看zstd-1.4.4目录中的内容

step6、使用cmake命令配置编译参数

cmake [option]... -D<变量>=<值> -S <sourceDIR> -B <buildDIR>
变量类型默认值说明
CMAKE_C_COMPILERFILEPATH/usr/bin/cc指定C编译器
CMAKE_C_FLAGSSTRING设置C编译器的参数
CMAKE_CXX_COMPILERFILEPATH/usr/bin/c++指定C++编译器
CMAKE_CXX_FLAGSSTRING设置C++编译器的参数
CMAKE_INSTALL_PREFIXPATH/usr/local/指定安装目录
CMAKE_BUILD_TYPESTRINGDebug
Debug 编译器设置-g参数
Release 编译器设置-O3 -DNDEBUG参数
RelWithDebInfo 编译器设置-O2 -DNDEBUG -g参数
MinSizeRel 编译器设置-Os -DNDEBUG参数
ZSTD_BUILD_TESTSBOOLOFF是否做单元测试
ZSTD_BUILD_CONTRIBBOOLOFF
ZSTD_BUILD_PROGRAMSBOOLON是否生成可执行程序
ZSTD_BUILD_STATICBOOLON是否生成静态库
ZSTD_BUILD_SHAREDBOOLON是否生成动态库
ZSTD_MULTITHREAD_SUPPORTBOOLON是否支持多线程,根据是否支持pthread决定
ZSTD_ZLIB_SUPPORTBOOLOFF是否使用zlib
ZSTD_LZMA_SUPPORTBOOLOFF是否使用xzliblzma
ZSTD_LZ4_SUPPORTBOOLOFF是否使用lz4liblz4

示例:

cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -G "Unix Makefiles" \
    -Wno-dev \
    -S build/cmake \
    -B build.d

说明:

-G "Unix Makefiles"表示配置后会产生GNU makeMakefile文件。

step7、使用GNU make编译并安装

nproc() {
    if command -v nproc > /dev/null ; then
        command nproc
    elif command -v sysctl > /dev/null ; then
        sysctl -n machdep.cpu.thread_count
    elif test -f /proc/cpuinfo ; then
        grep -c processor /proc/cpuinfo
    else
        printf "%b" 4
    fi
}

make --directory=build.d -j$(nproc) && \
make --directory=build.d install
1.4、zstd中包含的命令
1.5、zstd中包含的头文件
1.6、zstd中包含的库文件
  • libzstd.{a | so | dylib}