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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

light_compressor-0.0.1.8-cp314-cp314-win_amd64.whl (146.6 kB view details)

Uploaded CPython 3.14Windows x86-64

light_compressor-0.0.1.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (987.6 kB view details)

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

light_compressor-0.0.1.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (983.4 kB view details)

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

light_compressor-0.0.1.8-cp314-cp314-macosx_11_0_arm64.whl (167.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

light_compressor-0.0.1.8-cp314-cp314-macosx_10_15_x86_64.whl (163.7 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

light_compressor-0.0.1.8-cp313-cp313-win_amd64.whl (144.6 kB view details)

Uploaded CPython 3.13Windows x86-64

light_compressor-0.0.1.8-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.8-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.8-cp313-cp313-macosx_11_0_arm64.whl (166.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

light_compressor-0.0.1.8-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.8-cp312-cp312-win_amd64.whl (146.9 kB view details)

Uploaded CPython 3.12Windows x86-64

light_compressor-0.0.1.8-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.8-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.8-cp312-cp312-macosx_11_0_arm64.whl (169.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

light_compressor-0.0.1.8-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.8-cp311-cp311-win_amd64.whl (148.9 kB view details)

Uploaded CPython 3.11Windows x86-64

light_compressor-0.0.1.8-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.8-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.8-cp311-cp311-macosx_11_0_arm64.whl (169.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

light_compressor-0.0.1.8-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.8-cp310-cp310-win_amd64.whl (149.2 kB view details)

Uploaded CPython 3.10Windows x86-64

light_compressor-0.0.1.8-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.8-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.8-cp310-cp310-macosx_11_0_arm64.whl (167.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

light_compressor-0.0.1.8-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.8-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 52c8d6431b2dd0c9909203e3c5d763bd9595c7bc88c766cb6e6fdcbb50f0c09a
MD5 419dd27eb1b742828336707b4feacf7a
BLAKE2b-256 0fa53d28800627a734f1ccf3ccbc20ee0f9881715ee1b7c0b36d6d25d5cb7a01

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c0fb8ae06ca76dabf3f3ec161d118a0bf8402b81365cbecca2755f08aa3d681f
MD5 030687a8187e4a7c1331c5d8437ca0b0
BLAKE2b-256 248fa792491dcc031c33493cc6b36e9c92260995f2e37469559aa609b1a2a5bf

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.8-cp314-cp314-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.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 80c6cc85d49a2db0bbc48e0bb6d4101708990b41ca5abc9f6314a10fb7cd2702
MD5 07580b073db4057884bfcaa357c90a1e
BLAKE2b-256 289fba3fbff10eca628331ff118d661514c8d38af303c4a6356e05709a31b42b

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.8-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 edfb378b7572599a914bcd9b6bdb441bbbcd3d1df967e696e7517c9d55fde4a6
MD5 640a3f1d475cf4763ecbb061b7b380e8
BLAKE2b-256 8f1c2ded008fc7b56739dc4ce6f9b6438d8fe047f721061e8ffbf1286f378a66

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.8-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 350088a04e198f43605a27141df6872343e9e1c1a80922f2c0c389d5bdab0179
MD5 2e538684f549fff550a536b6c922ac5a
BLAKE2b-256 cab89132e6c6fee24c1b9b326cc0bb71dca5ff036720e72f1935826becaa2d54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 da3a59abc6569605b0d1e8280669b38c7732d58118bfc761fbd8ba9841bc92a5
MD5 3e5aa58e71daf0a20e902af599d01169
BLAKE2b-256 9e13616d57b7ca9621bfeb5ee811438ff2ad7fea25a16bb2d8c48386b666069a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bef80a5adbd8affa7cc9eb0ef4caf1dde238c7517e066a521759975fed64f650
MD5 e15ca0006eb6fa53eda4db26ec45e86c
BLAKE2b-256 e429cc2bcc0cde0bb47b8652fe0ca774cdf5dc35f14841b595f03cb85e8c99b4

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.8-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.8-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 71708701e9a2ac18eb0f1933713fcdcd7b99fbd899128fd6c56cfe5d1e46146e
MD5 f196bcf770d60ec215e5974c4a42bc81
BLAKE2b-256 c62d2346691b2180999c1ca650b169de1a4eaa84ca94e6bef73b1cb1efda166b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a51bdb196e0caf5fddffcb82e0e2e35591071fe0283984981a8992b9504c45a
MD5 e6324dd8ee672ed630c8a32e4a598ee6
BLAKE2b-256 5aca94c12b0821381551e648f51f863c97213e792f3f7675f9fc1a5df4eca2f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 267af4c5042e37e9f7c39e2ec2b7e823c91e7b363e34511b80106c3b1296ddf0
MD5 12319d121f827879464193e6672a3461
BLAKE2b-256 0a792ee04f3d1c34a4604e060059888e53bb6514e9e7120b33ec60befced38db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 73e7028d5d4cee8058b7f6833cad6122230e24e9ca45cf64ee653c8d138848fa
MD5 1ed877f76b5e75b1287674eb60e0aa37
BLAKE2b-256 9a9a144220607a92bb1ebdbd357aaa52506233395d7f1adf657071f4099ce3fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 83303310bacdc96079662318575c4ed551baa73a8b23a541ad34ab2b88e06112
MD5 0b44536b27c9f73de049bcd4429ee4e7
BLAKE2b-256 fc5e5340420d54de98dd4b5bb43034233348a90a971c04ea3c145e54e78c3c16

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.8-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.8-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 7b587cb664a0d87eb9ff553ba32f5e4c4f290d2bba7f8db449b265bfbd06b2a8
MD5 05fa35f7dc0ddd30fa8db534d8db63c5
BLAKE2b-256 5e7923de1ead016bdc0903b6d61a50c98eae3abf0122031e20d8fa446057c80d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 78d638bdcdd6601f7b640ea1d3a6581c8e42282f6be4fde16412077daacd6e0d
MD5 5be339e72b120a3d9e9117a72eb46ea5
BLAKE2b-256 babb1a4ed7e1a518fa70626cced7816ccdce62902478e2912de817538cd0c481

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 9552befb4d82e22f2e088169d064cec0d48fa3986c8f7874f6118d7a239b5b93
MD5 4e6140704e8d3ac6dd99489b72554c87
BLAKE2b-256 e73559e094112ddbe0814d5cee9fefae386f855f8614e516082c107c78df8802

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 223c6489a7a93ae2f0fc26896cdb541413e3a53e794d342b386decdc3d301b6f
MD5 99ebb965ffdc6f7d6f1843ca3e701cfa
BLAKE2b-256 f6316a98048aff04af77f0611dc095a654c039e8386f7eea35e3b2e6d1921900

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ddd4a60de482f7acbdab2d39c896807a6354a37d204361f03883e840930d7620
MD5 2de7a69089c2b030983b7abd921a93fc
BLAKE2b-256 bdc8d6c169b1b38a2148e0bcc0b6071bb98a90ad8fb299760019662c26d88a62

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.8-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.8-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 87ad95f5678cd69ee3bfc76c7d34871606a2b9b3ec401bae66bcaff80c2f273d
MD5 6ed6bdfff325977d26bb2b8b32c91408
BLAKE2b-256 a5b71602bfa140f9ede4aaf6345a917286b33f1bfb103f8d3db0bbf0acd99e40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 33450d1b3c8a464c6541974eb23039092d4140b4fa23472302b83989ba81a81a
MD5 e55ae4b99c9265b45a226b68f5a84603
BLAKE2b-256 4abbe3a2371cd1169eec0be5df03ea69f29a6afba8f766555003ea89b0c9299b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3fcce2664ac50f642fce2cf7b9cf4d5ef215b0a1691bd4c50a84421bbdf88cb8
MD5 0a0842e5b6dacf1675d94b0f63e87447
BLAKE2b-256 a9430fe6b815d2eda6f67684e8f49c5384524f492a6d5db3b203e76abdcd550a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5e5e5090017788513b862e9f7178d3fce72194c1a0a71a5491201a0791d5d67c
MD5 499cd675c5a67c2459e6c932573f9c86
BLAKE2b-256 c460890f345655d49c0c2bc489acf46182bc7987db515a29ebaafe70c69b3dfe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 21f47f0b4a3f335dcf9418736296517e7d5cb3fe6b0f51737610497a6f8e33c5
MD5 cc43830cc1aaef0eddb792b69c9e54e5
BLAKE2b-256 e73fcbf1978e35caac90ccb5cf16c5636822df724913cb1864183ac656d10e2e

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.8-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.8-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 382708f93135aa094503581616f78e41014b0be2a35eafb824562e85761ae539
MD5 02c9d67de863fb6b0f9a2d8289dc34e4
BLAKE2b-256 7cc7b02a8ead56cc82e1a3f36407713c3ee381a15ed5cafd8a148a39410d858c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f23a512b82c60d1c2d6fbdbde98c42bd4e03cd32fa6aadd1803b2f706ebad17f
MD5 285a2d54a108f6d6ed6c7649cb94bad8
BLAKE2b-256 7aab6e658beda0366b3b24fa8beaa9a1f6913af1a322dca9843453d97bbd5d4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.8-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3de5eab2f2df61e2ba1d7b25979c61932f914b152d9a10652354a61073468e9a
MD5 217e537ab5f3b848b5a3e1ccaf0d953e
BLAKE2b-256 3e07c35154132093ff331a7335f84ccbc2c14d6242d77a9ce31e1bfbcf60576b

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