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.9-cp314-cp314-win_amd64.whl (146.6 kB view details)

Uploaded CPython 3.14Windows x86-64

light_compressor-0.0.1.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (987.7 kB view details)

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

light_compressor-0.0.1.9-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.9-cp314-cp314-macosx_11_0_arm64.whl (167.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

light_compressor-0.0.1.9-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.9-cp313-cp313-win_amd64.whl (144.6 kB view details)

Uploaded CPython 3.13Windows x86-64

light_compressor-0.0.1.9-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.9-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (996.6 kB view details)

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

light_compressor-0.0.1.9-cp313-cp313-macosx_11_0_arm64.whl (166.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

light_compressor-0.0.1.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (982.6 kB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

light_compressor-0.0.1.9-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.9-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7fbfa64b66a1dcc176bd775d4fb85a40961a95792b4f8adecb085829c12c4e2f
MD5 907a76987d7b4ea2726a85dccd837987
BLAKE2b-256 34d665f29253c0988da34cad6f18e8bfb60b650457df9e55413bb38a966fbc43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 951c54590b4aef0631c868d9b3f7f79791a2bf4edee76915b27d92fc882ba755
MD5 5bbd7e53cfd7d4eb6b5f6f80b7bbf9f3
BLAKE2b-256 6933c1d5b3e589598f913178d929030ad5a59e7b3fd202757728cf481ad3af14

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.9-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.9-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 d3375950fbb24ca9202f987afe64c88ef8cccd87e43d2772e9d83facfddd7391
MD5 f5173fdc6c0f0d3263ac430c43d919c6
BLAKE2b-256 defcc13323119b1569f06228dfd299068ff2435827dcfee8ce5251d53d6c95b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8284df1297535be4d9a59a7af74a9156ffb7f41ab299a6589d9c0093837d8941
MD5 3ed7703f7649d33ef3d34cd440018f91
BLAKE2b-256 8bc7edf052787a36d0e26952d6a5caf3f0a71933a6f2c9c799fae43fb3d268fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f990e6cf635e64a8832bed625e40dbbb235ed618a9308e99a239af2b82413375
MD5 5c5d204086de9442ac26e8fd84dea83c
BLAKE2b-256 2ae3efffd45e956039dc28e8acb9636714230af3ef276d9eed1e36bb612d511a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 af213f47d5ee4e2f36f26dd088eae85936f77680ac06f9411901a320d36c67b1
MD5 acded1f06a24ad20d40754c9cb57f95a
BLAKE2b-256 3a7d5d917883cc43a018ff52564eb9e2e2876d61dc70ef653b62b63f9e0a041a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4646ec5741e8d7d64fadbc46360ca6a3cbb028fe214e0895d43dd7a03de1d721
MD5 044172787bfd4acadf55dfcd55e72f32
BLAKE2b-256 c2aab474affe1283d66aeed187fa59208e7d9f38143f28305c08a6023d14840b

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.9-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.9-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 f05a86a0b3e7395216426e550aeee3e8e27dbf270bb2c7651c1d1951d6cca8c1
MD5 6e064fc6bce153adf3226ec25a380f1e
BLAKE2b-256 b3cb6f54de388146c16f52d86eb1b4258cf26853546b7899bb7ff4698eb3c5ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98189b57874d559f57765611bbff7e5eb15bdc773c57b5b384ef07d42ed2f8bd
MD5 0808a86962970055a01745cf8d5ad4ca
BLAKE2b-256 87a7dc397c362a8300525d61d3bfbdc78df151b654efb096b2c1909d4da38c58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 9dce29734533c243b3d8215f69bb0509305893eaff5b51eb7426a4fbceaa1512
MD5 d178349c181e778c6f6283d685e763c5
BLAKE2b-256 d03227e33c90698bceed431fa8d715adb4f42ecb2341042442b8eb31d1c5856e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 59bf749784321a0cd87a7b64a2ccb1da9892b859cbe754831816e03306dac0aa
MD5 fd586ce050cf09b3840c4f81b72a8dbb
BLAKE2b-256 431c909fa2e1ae869d46affd77a5bcdad077771fd2fa4ebb591a8a5a0a11c1fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9d1c7e813604ca0cac0c93a5919c84e713af43ae234482b332166fb1bc349da5
MD5 20d0e3e35f290db6ee638862acd50211
BLAKE2b-256 c2e42aa9c7e7c6ef3b0ea128d9cfe266161d06cfa1f427d2784a6a05dfa77e5a

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.9-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.9-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ab00389371e6512ee650b537eecc6c0b40a32d2816198de941d9dc98b9c41bb7
MD5 b769b356f3bcf0a583547fbe1f1d5dfb
BLAKE2b-256 5d4951ea2231ade6b7eca8f9869ce330953bb584cce77a97016dda573a049381

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4d1cd0acc5f7f3f4d8075fe23606bff5c6850d62d08985a7c60a08cda9c6f2e
MD5 9a12a5c1e54865c6e5f8dfeb62c802a5
BLAKE2b-256 911dbe5df8e8c54830cced991a63f291e16ceb5e468ddf9e0127e665af99fd58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 9fe43303cad8d4f0290aa63b59632b02c244cd66976252d32cedc68d07dca881
MD5 ca8c3a9c08901e8ada516b80d762d0e3
BLAKE2b-256 36a115afdbbb99db80972d0a7906da94e370733d83567fa4d1f8b880baa38896

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9c92795c91c2e194111a9e5ade8191dd9195a07d3bbca1225f396c8df5d8a2b8
MD5 a5f64afc27eeefa68e8832269a5b1e1e
BLAKE2b-256 82f42def19c6280c489e17a9804a1b3ce40e866f5ffbf73940ac3b01f46c9d61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c17a5b068029170fad8a1cc79fbd6cfd1fbf9b1776a0e5a0f105d6d2f1118817
MD5 8e6dbeae7b07c703073fda93de3d5ac0
BLAKE2b-256 fc40fa39049d67ecf7d6891dcb3ba3b44d96edfcab41921e5716692ec82a13da

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.9-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.9-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 537d0d13e489f99d640c3146d092bf36eaad9a46882ead8829e09ba3781a7642
MD5 bedc0fe10e9f652b83dfc716fcfb5242
BLAKE2b-256 4d26e2c1f5c7d7a3a5ef98c8540230a3ec179edbbbc200b0ecfe6f1ce3520472

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82593882594e6b12002de196bab2160fe2e0907a574614ab725a2bb0e0981a9c
MD5 79654189c289bab438567966383dfcfe
BLAKE2b-256 86af4e61753ddd64fa14fbd72c1b03e635bf5d4187425d0327c6959aa35a9208

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1afd944685568380bb7c1e11066f5d27a30b06c5b0681d3ba79cff5123ef4ea2
MD5 a8ec78fe8d10cbd812cb48a659441845
BLAKE2b-256 1f41b7dfa8812f1f0d24771233663e5f7c89e39b595554824c36408020642541

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 42ab5f35773bee5d90bee42262bf2a8a130bdcd1aa099e92d9cc30c5678ac139
MD5 eefdd27593bcbbef7db6f18c761aaaef
BLAKE2b-256 ec4bd2dd5fcac8cea47bdf853443a29806ee739b792178e0363b8b399b0623c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a31a35080cc6e90435b48b39579f003154b5b6899487d5eee852b1077e30adb4
MD5 37a0241159a1135f5617b2b127adc50e
BLAKE2b-256 0f72904b4abe2e451f1a590b9898d66330b5dd8a2d2aa2e261c24e271ea5a05d

See more details on using hashes here.

File details

Details for the file light_compressor-0.0.1.9-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.9-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 6477bd98f0b77629ca912cd0507e3390e92b9e81a9e155f7abc5fd39451af7b5
MD5 a69c42a974a4dd75feca0f9a946c684d
BLAKE2b-256 7ee7c31ecf7a851fc4b2c4fd498264528a76228b34ca5219b51b848229843191

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8640e483c48921e71f18d838cd69f8a210d7c172a167982107c99dc8d01fb3ce
MD5 bc42b194a68e059e36073150f6871ee0
BLAKE2b-256 ca7f82ca2f40278ff104bd0ce33a01ef4c56bbc10f0c74ee838e8b6e3e2249a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for light_compressor-0.0.1.9-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 08ee8f81c277f7483e79da26f60ef4903c9b0a3b90716af94674331f97dab017
MD5 7747494abe189d2fafb612ff0bb8db2c
BLAKE2b-256 0738b6f08a4e5ce817ccf8cf4c7eba552fed04e046430fe8b0d5ac04fd9e79ad

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