Skip to main content

A C++ implementation with Python bindings of StreamVByte.

Project description


libstreamvbyte


Table of Contents
  1. About The Project
  2. Getting Started
  3. Benchmark
  4. Roadmap
  5. Contributing
  6. License
  7. Reference
  8. Contact

About The Project

libstreamvbyte is a C++ implementation of StreamVByte, with Python bindings using pybind11.

StreamVByte is a integer compression technique that use SIMD instructions (vectorization) to improve performance. The library is optimized with SSSE3 intrinsics, which are supported by most x86_64 processors. It uses sse2neon to translate SSSE3 intrinsics to NEON intrinsics for ARM processors. The library can also be used with other 32-bit architectures, although it will fall back to scalar implementations in those cases.

With libstreamvbyte, you can quickly and efficiently compress integer sequences, reducing the amount of storage space and network bandwidth required. The library is easy to use and integrates seamlessly with Python via pybind11 bindings. Whether you're working with large datasets or building a distributed computing system, libstreamvbyte can help you improve performance and reduce the resources needed to handle your data.

Currently supports Python 3.10+ on Windows, Linux (manylinux_2_17, musllinux_1_1) and macOS (universal2).

(back to top)

Getting Started

Installation

For Python

Install from PyPI using pip.

pip install libstreamvbyte

Or install from .whl file.

pip install "path/to/your/downloaded/whl"

To find appropriate .whl file, please visit releases.

For C++

You must have CMake installed on your system.

# clone the repo
git clone https://github.com/wst24365888/libstreamvbyte
cd libstreamvbyte

# build and install
cmake .
make
sudo make install

Usage

For Python

Import libstreamvbyte first.

import libstreamvbyte as svb

And here are the APIs.

# Encode an array of unsigned integers into a byte array.
encode(arg0: numpy.ndarray[numpy.uint32]) -> numpy.ndarray[numpy.uint8]

# Decode a byte array into an array of unsigned integers.
decode(arg0: numpy.ndarray[numpy.uint8], arg1: int) -> numpy.ndarray[numpy.uint32]

# Encode an array of signed integers into an array of unsigned integers.
zigzag_encode(arg0: numpy.ndarray[numpy.int32]) -> numpy.ndarray[numpy.uint32]

# Decode an array of unsigned integers into an array of signed integers.
zigzag_decode(arg0: numpy.ndarray[numpy.uint32]) -> numpy.ndarray[numpy.int32]

# Check if the current wheel is a vectorized version.
is_vectorized_version() -> bool

For C++

Include streamvbyte.h first.

#include "streamvbyte.h"

For the APIs, please refer to include/streamvbyte.h.

Example

For Python

import libstreamvbyte as svb

N = 2**20 + 2

# type(original_data) == np.ndarray
# original_data.dtype == np.int32
original_data = np.random.randint(-2**31, 2**31, N, dtype=np.int32)

# type(compressed_bytes) == np.ndarray
# compressed_bytes.dtype == np.uint8
compressed_bytes = svb.encode(svb.zigzag_encode(original_data))

# type(recovered_data) == np.ndarray
# recovered_data.dtype == np.int32
recovered_data = svb.zigzag_decode(svb.decode(compressed_bytes, N))

For C++

#include "streamvbyte.h"

int main() {
    std::size_t N = (1 << 20) + 2;

    std::vector<int32_t> original_data(N);
    for (std::size_t i = 0; i < N; ++i) {
        original_data[i] = rand() - rand();
    }

    std::vector<uint8_t> compressed_bytes = streamvbyte::encode(streamvbyte::zigzag_encode(original_data));
    std::vector<int32_t> recovered_data = streamvbyte::zigzag_decode(streamvbyte::decode(compressed_bytes, N));

    return 0;
}

Compile it with linking to libstreamvbyte.

g++ -o example example.cpp -lstreamvbyte

(back to top)

Benchmark

OS: Linux 5.15.79.1-microsoft-standard-WSL2 x86_64
CPU: AMD Ryzen 5 3600 6-Core Processor (12) @ 3.600GHz

Run on (12 X 3593.26 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x6)
  L1 Instruction 32 KiB (x6)
  L2 Unified 512 KiB (x6)
  L3 Unified 16384 KiB (x1)
Load Average: 0.81, 0.85, 0.69
-----------------------------------------------------------------------------------
Benchmark                              Time             CPU   Iterations Throughput
-----------------------------------------------------------------------------------
BM_memcpy/4096                       149 ns          149 ns      4688531 13.7122G/s
BM_memcpy/8192                       548 ns          548 ns      1275803 7.46783G/s
BM_memcpy/16384                     1139 ns         1138 ns       640835 7.19553G/s
BM_memcpy/32768                     2185 ns         2185 ns       320840 7.49932G/s
BM_memcpy/65536                     4921 ns         4921 ns       142703 6.65895G/s
BM_memcpy/131072                   10968 ns        10968 ns        63502 5.97511G/s
BM_memcpy/262144                   22465 ns        22465 ns        31134 5.83457G/s
BM_memcpy/524288                   45101 ns        45100 ns        15541 5.81245G/s
BM_memcpy/1048576                  91131 ns        91131 ns         7639 5.75314G/s
BM_streamvbyte_encode/4096          1222 ns         1222 ns       580855 1.67556G/s
BM_streamvbyte_encode/8192          2470 ns         2467 ns       282349 1.66064G/s
BM_streamvbyte_encode/16384         4945 ns         4945 ns       139671 1.65662G/s
BM_streamvbyte_encode/32768         9990 ns         9989 ns        70497 1.64017G/s
BM_streamvbyte_encode/65536        19853 ns        19853 ns        30963 1.65051G/s
BM_streamvbyte_encode/131072       39933 ns        39932 ns        17401 1.64118G/s
BM_streamvbyte_encode/262144       80563 ns        80562 ns         8193 1.62697G/s
BM_streamvbyte_encode/524288      160716 ns       160716 ns         4284  1.6311G/s
BM_streamvbyte_encode/1048576     319253 ns       319253 ns         1942 1.64223G/s
BM_streamvbyte_decode/4096           691 ns          691 ns      1040462 2.96191G/s
BM_streamvbyte_decode/8192          1341 ns         1341 ns       516979 3.05539G/s
BM_streamvbyte_decode/16384         2683 ns         2683 ns       261208 3.05359G/s
BM_streamvbyte_decode/32768         5348 ns         5348 ns       130319 3.06353G/s
BM_streamvbyte_decode/65536        10817 ns        10817 ns        64427 3.02936G/s
BM_streamvbyte_decode/131072       23207 ns        23207 ns        31546   2.824G/s
BM_streamvbyte_decode/262144       45746 ns        45746 ns        11291 2.86519G/s
BM_streamvbyte_decode/524288       88660 ns        88660 ns         7947 2.95673G/s
BM_streamvbyte_decode/1048576     178497 ns       178497 ns         3907 2.93724G/s
BM_zigzag_encode/4096                810 ns          810 ns       854076 2.52829G/s
BM_zigzag_encode/8192               1611 ns         1608 ns       433154   2.548G/s
BM_zigzag_encode/16384              3174 ns         3174 ns       219165 2.58084G/s
BM_zigzag_encode/32768              6457 ns         6457 ns       108415 2.53754G/s
BM_zigzag_encode/65536             12582 ns        12582 ns        54747 2.60432G/s
BM_zigzag_encode/131072            25243 ns        25243 ns        27802 2.59617G/s
BM_zigzag_encode/262144            50278 ns        50278 ns        13952 2.60693G/s
BM_zigzag_encode/524288           100563 ns       100562 ns         6932 2.60678G/s
BM_zigzag_encode/1048576          211846 ns       211845 ns         3222 2.47487G/s
BM_zigzag_decode/4096                675 ns          675 ns      1041044 3.03263G/s
BM_zigzag_decode/8192               1342 ns         1342 ns       523553 3.05196G/s
BM_zigzag_decode/16384              2643 ns         2643 ns       265497 3.09905G/s
BM_zigzag_decode/32768              5383 ns         5383 ns       130976 3.04377G/s
BM_zigzag_decode/65536             11474 ns        11474 ns        60817 2.85588G/s
BM_zigzag_decode/131072            21777 ns        21777 ns        32345 3.00944G/s
BM_zigzag_decode/262144            43477 ns        43478 ns        14387  3.0147G/s
BM_zigzag_decode/524288            86120 ns        86120 ns         8145 3.04393G/s
BM_zigzag_decode/1048576          173095 ns       173093 ns         4028 3.02894G/s

The unit of Throughput is GB/s (Giga Bytes per second).

Build Benchmarks from Source

cmake . \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_SHARED_LIBS=OFF \
    -DBUILD_PYBIND11=OFF \
    -DPRINT_BENCHMARK=OFF \
    -DBUILD_TESTS=ON \
    -DBUILD_BENCHMARKS=ON
make libstreamvbyte_benchmarks
./libstreamvbyte_benchmarks --benchmark_counters_tabular=true

(back to top)

Roadmap

  • Zigzag encoding/decoding.
  • Support ARM processors with NEON intrinsics.
  • Differential coding (delta encoding/decoding).

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feat/amazing-feature)
  3. Commit your Changes with Conventional Commits
  4. Push to the Branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Reference

(back to top)

Contact

Author

Project Link

(back to top)

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

libstreamvbyte-0.3.0.tar.gz (764.4 kB view details)

Uploaded Source

Built Distributions

libstreamvbyte-0.3.0-cp311-cp311-win_amd64.whl (60.0 kB view details)

Uploaded CPython 3.11 Windows x86-64

libstreamvbyte-0.3.0-cp311-cp311-win32.whl (48.0 kB view details)

Uploaded CPython 3.11 Windows x86

libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_x86_64.whl (606.7 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_i686.whl (662.7 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_aarch64.whl (589.3 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (82.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (87.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (77.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

libstreamvbyte-0.3.0-cp311-cp311-macosx_10_9_universal2.whl (104.3 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

libstreamvbyte-0.3.0-cp310-cp310-win_amd64.whl (60.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

libstreamvbyte-0.3.0-cp310-cp310-win32.whl (47.9 kB view details)

Uploaded CPython 3.10 Windows x86

libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl (606.7 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_i686.whl (662.7 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_aarch64.whl (589.3 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (82.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (87.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (77.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

libstreamvbyte-0.3.0-cp310-cp310-macosx_10_9_universal2.whl (104.3 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file libstreamvbyte-0.3.0.tar.gz.

File metadata

  • Download URL: libstreamvbyte-0.3.0.tar.gz
  • Upload date:
  • Size: 764.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for libstreamvbyte-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f313cd321c43291806706656cbeb465a8776d4a145d443e3a75f4fa36ec04eab
MD5 711ee5e7d9c2678d2c6e1ec9d1bf552f
BLAKE2b-256 d09217e6f6d1946d18f59f0a9d8c5b19448fb6a7c9fa8c0ec5942b4b33eb497e

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e9c48e71c5fa88406ebc1bc06e9a140115831b9697e0b0316047a0e3505453e9
MD5 b4dcf55471fd29539efba4db4a35b3ce
BLAKE2b-256 715927e4dbdb61f7c971af4af7725c194db124c1e9d09aef68841813002dce34

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 84ed8b885667ea5d0d5bc097f607ba04065f0bd9f25f24583ff93a49c7cf9c1e
MD5 6d4ad415a883290128a6b4b662d52364
BLAKE2b-256 882dc7b125d2f16be703cec6ffaa624268423b31d1b45551214687f89bacf592

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 281a1c9f8871cf190fc06b011501df1e3fcdc6ec8eb75755dbc187f0742b7d8e
MD5 57479730377027de790bcd336c41b364
BLAKE2b-256 5b9bb1322a4b98d25ea516e2684472f50b4e42b86b46b283f5cb75b1cef5cf78

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 3c57ebced36059b5f22c4c0288d9de0bec15a91215c27d2cfff27c03ffcca525
MD5 1d8b9149fd2ccd94065bcb2dc540d7a5
BLAKE2b-256 57bb3d9cef42749b551012b713d66d6392303df5bf05e0ff078ee1873a8cc89b

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7675bd40312358e14fcbcf14d1e119c359a137acfdec35fe2e4bb9ce890a18b8
MD5 3d0b1f2ccbb0c820b94b8ed98542a780
BLAKE2b-256 1e94e8a17e0488cccbf05098f78c218219dcc27259184e2ba2c8261a5f3b2324

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dec934aa43be7dbb35b1b2d9d4c5f7550b9995707e4fffca00165aa45e726810
MD5 812972eb6e701a4097bc7dd207158d4f
BLAKE2b-256 466e84ae4fa3af3fb67fab7089ee91b694575001e0c915928798db9d3e39d6af

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6f8e0dcac0c4009f57900be77de283c5015386f418bb908a685cad9627e6f043
MD5 759a9ab77ae75939a2e0a1f37c845814
BLAKE2b-256 db8df77f3883f1982717106156d4901840f161150e1b1f094bb11983cf613152

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a2117cb4e0c82ceea5cded40efdb8d15391425ccc4056bb3690f9716b2d0d47c
MD5 efcc32a478a0b26ae6028d8ca5bdd15b
BLAKE2b-256 f6b1b2dff578551c50c3d8c7f1f4ad0038519f05d7e9ef5c10ef5e72e6e0eb34

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1c7f135cc95747c84cf281bd92c6e3b2d30b269ee639fc280e534b74964043e8
MD5 f5cd4e367b0f1fe97db73f94f21101a3
BLAKE2b-256 37a089de08b0d7150c1734743ca34df2edc7c8604beb16d5e5af46a6cf3ae5ea

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dde4a58fcbb4fc85b63d764ad83b2743d91cb5ee2e95fcb4983933d311b54550
MD5 06ab0d638f1f1ac59dbe109e5c6bcb98
BLAKE2b-256 6a35247d82476d1ff7235053f407c2c6a7e9098ab5b7ac084dab2d3e13b67b6b

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 2fe5369972ca4a8eca4cc3d7cd397b230155967173d633a9cef7f476e6fa83c8
MD5 860d3d169f4f21cde42beb0fb499c136
BLAKE2b-256 7f86264218e12e78620b4fb9f47163abe053e1de1f741c9d5351364963cdc171

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f2b6b07278211c9821d69ae16161fea324212827ed25d95f73216f176c27a531
MD5 a906e4ec2c68f4a05ee6d486244f9f7e
BLAKE2b-256 0ba1dba405b18479e0ab9d10b0b4ac96462e6106daa8144346bb34a5c9f920dd

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c59e79f16b7496248aa33991e18088386a1073c846e3827c57b58e2b441465eb
MD5 474c0b8a615b9049bb8f6ce93878e1c3
BLAKE2b-256 23c8fb29e94cac271931222a821f12ca03016f489ea169fd7d2ed279340b6a6a

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 57a59bfc62a08b1cd85dba9ec05db77a49ab923cd380d6f0d18977fbb81877a8
MD5 e98d7b671fb000381b2af342319c8c5a
BLAKE2b-256 8e7c908590aeffbed78869182f3250781eee50be204248ec50f59e9a0ef9d670

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 742b8447af67ab6389b204882eb89a22b59671dd9f943ed73432a27bb640e54b
MD5 08152bf7fa5c1388e0c2fcdf54dfd302
BLAKE2b-256 30dde5eac668b68ab555b7c4f33d9245a682277e42247dece4cc508a60d373b8

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 290c15ba635a0edb4471b10e82d905882f9875a97cf88e3d61f4b0c6d51ffda2
MD5 3f56b760d8495ac76cda6a473f06a262
BLAKE2b-256 5c5a3832cad83c3defda5137a51087b2d2f9b7167850747ed61e4def8cd0202a

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0b9e9d8e9fa4b11942c02693c9f232257d79e48368c936aa2025d3294e31cd8
MD5 11343bf4a6b390f733693bb427b46bab
BLAKE2b-256 2a7ef117fd13c32e6245b2493bc95188b62b5429d529e4da5d2ee89327fdc53f

See more details on using hashes here.

File details

Details for the file libstreamvbyte-0.3.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for libstreamvbyte-0.3.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 8bae9008362bde4cc4307c253247686636cedb74e5b3c26a87d7ad7d0f92c165
MD5 81286661ef24c03897a9cce5d9594adb
BLAKE2b-256 42abff6d61e7524c307e02f986b39298ace03186aced8a1dc0052c6d894cbe16

See more details on using hashes here.

Supported by

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