skbkontur/ZstdNet

Name: ZstdNet

Owner: Kontur

Description: Zstd wrapper for .NET

Created: 2016-08-22 09:41:09.0

Updated: 2018-04-01 00:42:49.0

Pushed: 2018-01-15 23:46:59.0

Homepage: null

Size: 1336

Language: C#

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

ZstdNet

NuGet

ZstdNet is a wrapper of Zstd native library for .NET languages. It has the following features:

Streaming APIs are not implemented.

Take a look on a library reference or unit tests to explore its behavior in different situations.

Zstd

Zstd, short for Zstandard, is a new lossless compression algorithm, which provides both good compression ratio and speed for your standard compression needs. “Standard” translates into everyday situations which neither look for highest possible ratio (which LZMA and ZPAQ cover) nor extreme speeds (which LZ4 covers). Zstandard is licensed under BSD 3-Clause License.

Zstd is developed by Yann Collet and the source is available at: https://github.com/Cyan4973/zstd

The motivation to develop of the algorithm, ways of use and its properties are explained in the blog that introduces the library: http://fastcompression.blogspot.com/2015/01/zstd-stronger-compression-algorithm.html

The benefits of the dictionary mode are described here: http://fastcompression.blogspot.ru/2016/02/compressing-small-data.html

Reference
Requirements

ZstdNet requires Zstdlib >= v1.0.0. Both 32-bit and 64-bit versions are supported. The corresponding DLLs (compiled from v1.3.3 using Visual C++) are included in this repository.

Exceptions

The wrapper throws ZstdException in case of malformed data or an error inside Zstdlib. If the given destination buffer is too small, InsufficientMemoryException is thrown away.

Compressor class

Allocates buffers for compression. Instances of this class are not thread-safe.

CompressionOptions class

Stores compression options and “digested” (for compression) information from a compression dictionary, if present. Instances of this class are thread-safe. They can be shared across threads to avoid performance and memory overhead.

Decompressor class

Allocates buffers for performing decompression. Instances of this class are not thread-safe.

DecompressionOptions class

Stores decompression options and “digested” (for decompression) information from a compression dictionary, if present. Instances of this class are thread-safe. They can be shared across threads to avoid performance and memory overhead.

DictBuilder static class
Wrapper Authors

Copyright (c) 2016-2017 SKB Kontur

ZstdNet is distributed under BSD 3-Clause License.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.