AlexSm 6d3e410c45 Remove CMakeLists from main (#2032) 7 months ago
..
float_huffman_bench bf0f13dd39 add ymake export to ydb 1 year ago
greedy_dict 6d3e410c45 Remove CMakeLists from main (#2032) 7 months ago
ut bf0f13dd39 add ymake export to ydb 1 year ago
README.md 1d2e8a8e99 Restoring authorship annotation for <cobat@yandex-team.ru>. Commit 2 of 2. 2 years ago
codecs.cpp e601ca03f8 Y_VERIFY->Y_ABORT_UNLESS at ^l 11 months ago
codecs.h b50730a77e Restoring authorship annotation for Alexey Bykov <alexei4203@yandex.ru>. Commit 2 of 2. 2 years ago
codecs_registry.cpp e601ca03f8 Y_VERIFY->Y_ABORT_UNLESS at ^l 11 months ago
codecs_registry.h 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
comptable_codec.cpp 9abfb1a53b Restoring authorship annotation for <yazevnul@yandex-team.ru>. Commit 2 of 2. 2 years ago
comptable_codec.h 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
delta_codec.cpp 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
delta_codec.h 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
float_huffman.cpp edee5b99e1 Restoring authorship annotation for <ironpeter@yandex-team.ru>. Commit 2 of 2. 2 years ago
float_huffman.h edee5b99e1 Restoring authorship annotation for <ironpeter@yandex-team.ru>. Commit 2 of 2. 2 years ago
huffman_codec.cpp 35262078d3 remove unused includes 2 years ago
huffman_codec.h 042dfdfd13 Restoring authorship annotation for <aprudaev@yandex-team.ru>. Commit 2 of 2. 2 years ago
pfor_codec.cpp 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
pfor_codec.h 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
sample.h 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
solar_codec.cpp 6b780718b1 Restrict max length of learned prefixes and fix solar codec 1 year ago
solar_codec.h a6f6b22bda Restoring authorship annotation for <udovichenko-r@yandex-team.ru>. Commit 2 of 2. 2 years ago
tls_cache.cpp 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
tls_cache.h 9123176b34 Restoring authorship annotation for Ruslan Kovalev <ruslan.a.kovalev@gmail.com>. Commit 2 of 2. 2 years ago
ya.make bf0f13dd39 add ymake export to ydb 1 year ago
zstd_dict_codec.cpp 02eacb2e07 Restoring authorship annotation for <igorsolovyev@yandex-team.ru>. Commit 2 of 2. 2 years ago
zstd_dict_codec.h b50730a77e Restoring authorship annotation for Alexey Bykov <alexei4203@yandex.ru>. Commit 2 of 2. 2 years ago

README.md

This is a library of compression algorithms with a unified interface and serialization. See also library/cpp/codecs/static, where a support for statically compiled dictionaries is implemented.

All algorithms have a common ICodec interface (described in codecs.h).

The ICodec interface has the following methods:\     virtual ui8 ICodec::Encode (TMemoryRegion, TBuffer&) const;\             - Input - memory region. Output - filled buffer and the rest of the last byte, if it was not filled to the end.\     virtual void ICodec::Decode (TMemoryRegion, TBuffer&) const;\             - Input - memory region. Output - filled buffer.\     virtual void Save (TOutputStream*) const;\             - Serialization.\     virtual void Load (TInputStream*);\             - Deserialization.\     virtual bool NeedsTraining() const;\             - Returns if it is necessary or not to teach this codec.\     virtual bool PaddingBit() const;\             - Returns which values should fill the free bits of the last byte.\     virtual size_t ApproximateSizeOnEncode(size_t sz) const;\             - Returns an approximate estimate of the size of the result after encoding.\                     For example could be used for a more accurate preallocation of a buffer.\     virtual size_t ApproximateSizeOnDecode(size_t sz) const;\             - Returns an approximate estimate of the size of the result after decoding.\                     For example could be used for a more accurate preallocation of a buffer.\     virtual TString GetName() const;\             - The name of the codec. It is required for registration of the codec in the system of serialization/deserialization.\                     For example, it allows you to save information about which combination of codecs was in use (see below).\     virtual void Learn(ISequenceReader*);\             - The interface for teaching codecs that use information about the distribution of data.

In addition, the library has a number of utilities that allow a more flexible use of it.

In the ICodec class the following methods are available:\     static TCodecPtr GetInstance(const TString& name);\             - Creation of a codec instance by a symbolic name\                     (See GetName() above)\     static void Store(TOutputStream*, TCodecPtr p);\             - Serialization of the codec along with its name\                     Allows you to save information about which particular combination of codecs was used for encoding,\                     and then reassemble the same combination for decoding\     static TCodecPtr Restore(TInputStream* in);\             - Serialization of the codec along with its name\     static TCodecPtr RestoreFromString(TStringBuf data);\             - Loads the codec instance from the string\     static TVector<TString> GetCodecsList();\             - The list of registered codecs