Skip to main content

Library for read compressed stream and write compressed chunks.

Project description

Light Compressor

This library is designed to provide optimal decompression and compression speed for data streams from databases and files. My project requires maximum-speed processing of byte streams and transferring compressed data to another stream. After testing all available solutions, I found their speed unsatisfactory, so I optimized the existing implementation to achieve better performance.

The stream reader use direct sequential reading from the stream with explicit size indication. This meets all requirements for my project. Supported compression formats: LZ4 and ZSTD only.

Examples

File detect compression only

from light_compressor import auto_detector
fileobj = open("some_path_to_file.bin", "rb")
compressor_method = auto_detector(fileobj)

File reading

When reading from files, automatic compression format detection is available (checks for LZ4/ZSTD signatures or no compression):

from light_compressor import define_reader
fileobj = open("some_path_to_file.bin", "rb")
decompressed_stream = define_reader(fileobj)

File writing

from light_compressor import (
    LZ4Compressor,
    ZSTDCompressor,
)
# some data in bytes
bytes_data: list[bytes]
# for example we using ZSTDCompressor
compressor = ZSTDCompressor()
fileobj = open("some_path_to_file.bin", "wb")

for data in compressor.send_chunks(bytes_data):
    fileobj.write(data)

print("Original size is:", compressor.decompressed_size)
print("Compressed size is:", fileobj.tell())

fileobj.close()

Stream reading

For stream processing, the compression method must be explicitly specified

from light_compressor import (
    define_reader,
    CompressionMethod,
)
compressed_stream: urllib3.response.HTTPResponse
# Get decompressed file-like object from ZSTD-compressed stream
decompressed_stream = define_reader(compressed_stream, CompressionMethod.ZSTD)

Stream writing

from light_compressor import (
    define_writer,
    CompressionMethod,
)
# some data in bytes
bytes_data: list[bytes]
# Get generator yielding ZSTD-compressed byte chunks
compressed_stream = define_writer(bytes_data, CompressionMethod.ZSTD)

Installation

From pip

pip install light-compressor

From local directory

pip install .

From git

pip install git+https://github.com/0xMihalich/light_compressor

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

light_compressor-0.0.1.7.tar.gz (10.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

light_compressor-0.0.1.7-cp313-cp313-win_amd64.whl (144.5 kB view details)

Uploaded CPython 3.13Windows x86-64

light_compressor-0.0.1.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (990.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

light_compressor-0.0.1.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (996.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

light_compressor-0.0.1.7-cp313-cp313-macosx_11_0_arm64.whl (166.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

light_compressor-0.0.1.7-cp313-cp313-macosx_10_14_x86_64.whl (163.3 kB view details)

Uploaded CPython 3.13macOS 10.14+ x86-64

light_compressor-0.0.1.7-cp312-cp312-win_amd64.whl (146.9 kB view details)

Uploaded CPython 3.12Windows x86-64

light_compressor-0.0.1.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

light_compressor-0.0.1.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

light_compressor-0.0.1.7-cp312-cp312-macosx_11_0_arm64.whl (169.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

light_compressor-0.0.1.7-cp312-cp312-macosx_10_14_x86_64.whl (167.0 kB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

light_compressor-0.0.1.7-cp311-cp311-win_amd64.whl (148.8 kB view details)

Uploaded CPython 3.11Windows x86-64

light_compressor-0.0.1.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (982.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

light_compressor-0.0.1.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (977.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

light_compressor-0.0.1.7-cp311-cp311-macosx_11_0_arm64.whl (169.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

light_compressor-0.0.1.7-cp311-cp311-macosx_10_14_x86_64.whl (166.4 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

light_compressor-0.0.1.7-cp310-cp310-win_amd64.whl (149.2 kB view details)

Uploaded CPython 3.10Windows x86-64

light_compressor-0.0.1.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (927.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

light_compressor-0.0.1.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (922.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

light_compressor-0.0.1.7-cp310-cp310-macosx_11_0_arm64.whl (167.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

light_compressor-0.0.1.7-cp310-cp310-macosx_10_14_x86_64.whl (164.9 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

File details

Details for the file light_compressor-0.0.1.7.tar.gz.

File metadata

  • Download URL: light_compressor-0.0.1.7.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for light_compressor-0.0.1.7.tar.gz
Algorithm Hash digest
SHA256 f8d6ea17a73ec9fef9f92f4852d16e7ebe45dd8a4e1ca572ac91bc88dc546677
MD5 e99712f3ae6247bdfe58a2e4bde0f844
BLAKE2b-256 997ebc1bc1ed8edc58732305d7e31de29f667379f857e2a4e11ce8dda8ae772c

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 48d88204d55ff8e911cc774056d919cdceb50cfa2236fb30b497956b71664a7d
MD5 7f3db1e55321dd57efad7a4e0c2c213e
BLAKE2b-256 9956f4ed1df564d0411a5da70dade0487c782165279a66decda456f713fd0a7c

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 680889ad9763577a9a7d0175e8d1ea768d7e4022e9130e1ce917adbd9a08f0d2
MD5 bb305aab3b6fc3b9ddf2253a9ca56418
BLAKE2b-256 9c44ef19008788ed8919168f389ea68126c5d5757e7fa747dc6bc9bc98cc8a25

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 53702987bc8d1340b2eaab277258c274be7245472b5b6cd822074f995a8ef5c0
MD5 df8a974f436035dd176add2555743744
BLAKE2b-256 7472e5e02235b93a79b925b591910a98ce4659b1a7a60c752671e6d09f9fe878

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d29936770b7806ca3e84b6a5b113356ef5cbdc98277307ad2773765a20976459
MD5 80ff22b7b52f8d5c152194024ad12a0c
BLAKE2b-256 193419104969e4302d4a67dc6ca320a2104f565e495066fedb969622360555c1

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp313-cp313-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 50d6f4e329fa7ab5c3d513496a9ea7f5823cfeed2e47781cb98d58de534c723c
MD5 fda123e681024d5193ebd0bfa44bfa9d
BLAKE2b-256 0a00cb02e6d6ddb1bc1cca78b3d1cc341d6aa4c1349fc8a5377792e1c9ab8312

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d0c7db655f5e006a4f45366000ce29c1287075cb8612458d8d7b10908dc7e8a5
MD5 7dfc4920283ddec65b492b58dce229bc
BLAKE2b-256 2d54086d02284b0f34132136bb8ab2b2001fc50b3a60209c39b49ead271c3169

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 99064da7fa8852f2b1be8e64fabbc95f1acf81168eb738d351251a762a1533b6
MD5 0d7afa9e9bf74f902c2ba074d470e1bf
BLAKE2b-256 5916ed1324b5da7b8c869b77e3d4aa0c7b56ffcf7ad44f472348da00892b7943

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 8bbc2ce0dd82fb52d9b26ec8eaa3dbe920f7192842012d8cedce9bf0f84786bc
MD5 fd04e80ac96180c610f629fc28542830
BLAKE2b-256 77d82c9b0f89571f79db9857aefc2d138d7abdeae7aa6ccfa1a513d2b287e106

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c37dfb1256e0877b5ba0c0504f62ef4dc270c2e0a47deb5fced82f88b56754de
MD5 219e3258c49e448b021e9861da070e41
BLAKE2b-256 ecc46c2cae40bf76dbefdf85188ef6885d1e1bc9976fb3db573e26091c9a3d9e

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 d9d7b6533d16a6815c1a9c6d3f1ace3b337559d0baaff6a246b90217be835e22
MD5 9e635cde96d560fec3c915e27390abdb
BLAKE2b-256 2f2e9737d32ac913796596ec44856f4ac963ddfcf4e562afc5615928d7c392ba

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2afbb3fb187b2909e791d486585b186e4a54d45a7cdb87c37b5a6ebc5d097187
MD5 bd2797786132162ecf1e72767970b23b
BLAKE2b-256 aa179c66956c52569af6125350d75f4e9f363cf952f2d47cfd6c04495e24eaba

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 21cb6ee3ca04a67f0bae50736005e2f3911a346fa92c918c0973976932655f53
MD5 0f680aacc7c968ccdb899ad1b9619c51
BLAKE2b-256 dc0a4c5ac33bef0c26833ed34fa5f63284104cba29eee742605d96a770f7e74f

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 95bf7d29a11555dd0d6b168de05a8adf9eb47ce4dddc66863de331d0d3d1b070
MD5 dea8a6df15e02dce8d022e979cd48a35
BLAKE2b-256 761540b7a795c7f514802d2da336689ba7bccd4ac0205d87c7676f5ebe823ee0

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb750e48815fe96cb767047bb89c173f535d4252819f091b6e53a80418890f32
MD5 6a6536df3e988008801dd0d0c597e0e6
BLAKE2b-256 f085b7f786259b5b3d4b54b609178cefc73d02d5934f220d700c544eb069e553

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6326a8c731e001bd847019fbe27fcb080620413dc8af25ecd92027d9972a63a9
MD5 2231910ccc607042975a838d4d0b3659
BLAKE2b-256 844f87e91da619c52fcf4f31db468580fb7039f6e0080309cba892fdf2103405

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 628c430bc0bf47157945b2c3fc42ebad9b131b83522e019df9c1cca3bc83ef6e
MD5 c0b693d17711e3250a3965afe0bf1e00
BLAKE2b-256 bb7f7c97584d553eb9bc5d57a4c602e3ac12f322f912103185c61ff9a1a0848b

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0fa0d0e9889a332fd7a371afd97edaca6b60873e5301d8d620fa1e5af20cdd5f
MD5 659936be2c61f2cda6d372c06f42baae
BLAKE2b-256 e0e8bbdc8557976a76075d3accd0e84662314a50c00b3a59f2b5caa2fd647ec4

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 206cb60b68d9e1f6b06320ef8064f64c86f1f2ee941150252c58550686c8b820
MD5 1ea1f7722715fe70617ee2a01cd3a970
BLAKE2b-256 25d632c9c3c2038ef349daa148011f5c2b471ae41b0a65a964d70984c6e301ff

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c6cff8aa006e867eddc6a1490cd163da6bc3ff4fcee2b6535c0d57bdde25fb7
MD5 2dfb606f7985b0c2007874ffe142d8ce
BLAKE2b-256 33c47e021a11f6df98a9451beabb786338dc207afa6cd8fcf09c6962f78bbcd7

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.7-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.7-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 35311ba721766033995d44c1e45c67e83cdd1d663e50b7a86bc2bfeb0f02aee9
MD5 41a0e632ec5a38d0a7d73905b7f2aa2a
BLAKE2b-256 ee2163225370200b015cc6623b1a3abdc4a9f36537ecf86942d580452b0a2e77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page