Metadata-Version: 2.4
Name: light_compressor
Version: 0.0.0.1
Summary: Library for read compressed stream and write compressed chunks.
Author-email: 0xMihalich <bayanmobile87@gmail.com>
Project-URL: Homepage, https://github.com/0xMihalich/light_compressor
Project-URL: Documentation, https://github.com/0xMihalich/light_compressor#readme
Project-URL: Repository, https://github.com/0xMihalich/light_compressor
Project-URL: Changelog, https://github.com/0xMihalich/light_compressor/blob/main/CHANGELOG.md
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: backports.zoneinfo==0.2.1; python_version < "3.9"
Requires-Dist: pandas>=2.1.0
Requires-Dist: polars>=0.20.31

# Light compressor

Пока пишу по-русски и как обычный комментарий, в последствии переделаю.

Суть библиотеки - обеспечить оптимальную скорость распаковки и упаковки сжатого потока данных из БД и файлов.
Для моего проекта требуется максимально быстро обработать поток байт и передать в другой поток упакованные данные в сжатом формате.
Проверил все готовые решения, скорость не устроила, поэтому поправил то что было как смог, стало быстрее.
У стрим ридера нет и не может быть методов tell и seek, только прямое последовательное чтение из потока.
Для моего проекта этого достаточно, поэтому делаю так.
Форматы сжатия только LZ4 и ZSTD.


Для ридера при чтении из файла доступно автоматическое определение формата сжатия (проверка по сигнатуре LZ4, ZSTD или сжатие отсутствует)

```python
from light_compressor import define_reader


fileobj = open("some_path_to_file.bin", "rb")
decompressed_stream = define_reader(fileobj)
```

Для чтения в потоке требуется явно передать метод сжатия

```python
from light_compressor import define_reader, CompressionMethod


# Получение распакованного файлоподобного объекта из потока, сжатого в ZSTD
decompressed_stream = define_reader(fileobj, CompressionMethod.ZSTD.value)
```
