cl-zstd is a Common Lisp library for Zstandard compression/decompression using bindings to the libzstd C library.
cl-zstd is released under the GPL-3 license or later. See the LICENSE file for details.
cl-zstd requires:
There should be a package providing libzstd in almost every GNU/Linux or *BSD distribution. For example it is called libzstd1 on Debian, zstd on Gentoo, and zstd:lib on Guix.
The library can be loaded with the usual:
(asdf:load-system "zstd")
or
(quicklisp:quickload "zstd")
The functions will then be available in the zstd
package.
(compress-stream input output &key level) => t
Read the data from the input octet stream, compress it, and write the result to the output octet stream.
(compress-file input output &key level) => t
Read the data from the input file, compress it, and write the result to the output file.
(compress-buffer buffer &key start end level) => bytes
Read the data between the start and end offsets in the buffer, compress it, and return the resulting octet vector.
(decompress-stream input output) => t
Read the data from the input octet stream, decompress it, and write the result to the output octet stream.
(decompress-file input output) => t
Read the data from the input file, decompress it, and write the result to the output file.
(decompress-buffer buffer &key start end) => bytes
Read the data between the start and end offsets in the buffer, decompress it, and return the resulting octet vector.
The tests require the fiveam package. They can be run with:
(asdf:test-system "zstd")