Skip to main content

Crunch multi-gigabyte strings with ease

Project description

StringZilla 🦖

StringZilla is the Godzilla of string libraries, splitting, sorting, and shuffling large textual datasets faster than you can say "Tokyo Tower" 😅

  • ✅ Single-header pure C 99 implementation docs
  • Direct CPython bindings with minimal call latency docs
  • SWAR and SIMD acceleration on x86 (AVX2) and ARM (NEON)
  • Radix-like sorting faster than C++ std::sort
  • Memory-mapping to work with larger-than-RAM datasets
  • ✅ Memory-efficient compressed arrays to work with sequences
  • 🔜 JavaScript bindings are on their way.

This library saved me tens of thousands of dollars pre-processing large datasets for machine learning, even on the scale of a single experiment. So if you want to process the 6 Billion images from LAION, or the 250 Billion web pages from the CommonCrawl, or even just a few million lines of server logs, and haunted by Python's open(...).readlines() and str().splitlines() taking forever, this should help 😊

Performance

StringZilla is built on a very simple heuristic:

If the first 4 bytes of the string are the same, the strings are likely to be equal. Similarly, the first 4 bytes of the strings can be used to determine their relative order most of the time.

Thanks to that it can avoid scalar code processing one char at a time and use hyper-scalar code to achieve memcpy speeds. The implementation fits into a single C 99 header file and uses different SIMD flavors and SWAR on older platforms.

Substring Search

Backend \ Device IoT Laptop Server
Speed Comparison 🐇
Python for loop 4 MB/s 14 MB/s 11 MB/s
C++ for loop 520 MB/s 1.0 GB/s 900 MB/s
C++ string.find 560 MB/s 1.2 GB/s 1.3 GB/s
Scalar StringZilla 2 GB/s 3.3 GB/s 3.5 GB/s
Hyper-Scalar StringZilla 4.3 GB/s 12 GB/s 12.1 GB/s
Efficiency Metrics 📊
CPU Specs 8-core ARM, 0.5 W/core 8-core Intel, 5.6 W/core 22-core Intel, 6.3 W/core
Performance/Core 2.1 - 3.3 GB/s 11 GB/s 10.5 GB/s
Bytes/Joule 4.2 GB/J 2 GB/J 1.6 GB/J

Split, Partition, Sort, and Shuffle

Coming soon.

Quick Start: Python 🐍

  1. Install via pip: pip install stringzilla
  2. Import the classes you need: from stringzilla import Str, Strs, File

Basic Usage

StringZilla offers two mostly interchangeable core classes:

from stringzilla import Str, File

text_from_str = Str('some-string')
text_from_file = Str(File('some-file.txt'))

The Str is designed to replace long Python str strings and wrap our C-level API. On the other hand, the File memory-maps a file from persistent memory without loading its copy into RAM. The contents of that file would remain immutable, and the mapping can be shared by multiple Python processes simultaneously. A standard dataset pre-processing use case would be to map a sizeable textual dataset like Common Crawl into memory, spawn child processes, and split the job between them.

Basic Operations

  • Length: len(text) -> int
  • Indexing: text[42] -> str
  • Slicing: text[42:46] -> Str
  • String conversion: str(text) -> str
  • Substring check: 'substring' in text -> bool
  • Hashing: hash(text) -> int

Advanced Operations

  • text.contains('substring', start=0, end=9223372036854775807) -> bool
  • text.find('substring', start=0, end=9223372036854775807) -> int
  • text.count('substring', start=0, end=9223372036854775807, allowoverlap=False) -> int
  • text.splitlines(keeplinebreaks=False, separator='\n') -> Strs
  • text.split(separator=' ', maxsplit=9223372036854775807, keepseparator=False) -> Strs

Collection-Level Operations

Once split into a Strs object, you can sort, shuffle, and reorganize the slices.

lines: Strs = text.split(separator='\n')
lines.sort()
lines.shuffle(seed=42)

Need copies?

sorted_copy: Strs = lines.sorted()
shuffled_copy: Strs = lines.shuffled(seed=42)

Basic list-like operations are also supported:

lines.append('Pythonic string')
lines.extend(shuffled_copy)

Low-Level Python API

The StringZilla CPython bindings implement vector-call conventions for faster calls.

import stringzilla as sz

contains: bool = sz.contains("haystack", "needle", start=0, end=9223372036854775807)
offset: int = sz.find("haystack", "needle", start=0, end=9223372036854775807)
count: int = sz.count("haystack", "needle", start=0, end=9223372036854775807, allowoverlap=False)
levenstein: int = sz.levenstein("needle", "nidl")

Quick Start: C 🛠️

There is an ABI-stable C 99 interface, in case you have a database, an operating system, or a runtime you want to integrate with StringZilla.

#include "stringzilla.h"

// Initialize your haystack and needle
sz_string_view_t haystack = {your_text, your_text_length};
sz_string_view_t needle = {your_subtext, your_subtext_length};

// Perform string-level operations
sz_size_t character_count = sz_count_char(haystack.start, haystack.length, "a");
sz_size_t substring_position = sz_find_substring(haystack.start, haystack.length, needle.start, needle.length);

// Hash strings
sz_u32_t crc32 = sz_hash_crc32(haystack.start, haystack.length);

// Perform collection level operations
sz_sequence_t array = {your_order, your_count, your_get_start, your_get_length, your_handle};
sz_sort(&array, &your_config);

Contributing 👾

Future development plans include:

Here's how to set up your dev environment and run some tests.

Development

CPython:

# Clean up, install, and test!
rm -rf build && pip install -e . && pytest scripts/ -s -x

# Install without dependencies
pip install -e . --no-index --no-deps

NodeJS:

npm install && npm test

Benchmarking

To benchmark on some custom file and pattern combinations:

python scripts/bench.py --haystack_path "your file" --needle "your pattern"

To benchmark on synthetic data:

python scripts/bench.py --haystack_pattern "abcd" --haystack_length 1e9 --needle "abce"

Packaging

To validate packaging:

cibuildwheel --platform linux

Compiling C++ Tests

cmake -B ./build_release -DSTRINGZILLA_BUILD_TEST=1 && make -C ./build_release -j && ./build_release/stringzilla_test

On MacOS it's recommended to use non-default toolchain:

# Install dependencies
brew install libomp llvm

# Compile and run tests
cmake -B ./build_release \
    -DCMAKE_C_COMPILER="/opt/homebrew/opt/llvm/bin/clang" \
    -DCMAKE_CXX_COMPILER="/opt/homebrew/opt/llvm/bin/clang++" \
    -DSTRINGZILLA_USE_OPENMP=1 \
    -DSTRINGZILLA_BUILD_TEST=1 \
    && \
    make -C ./build_release -j && ./build_release/stringzilla_test

License 📜

Feel free to use the project under Apache 2.0 or the Three-clause BSD license at your preference.


If you like this project, you may also enjoy USearch, UCall, UForm, UStore, SimSIMD, and TenPack 🤗

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

stringzilla-2.0.2-cp312-cp312-win_amd64.whl (31.8 kB view details)

Uploaded CPython 3.12 Windows x86-64

stringzilla-2.0.2-cp312-cp312-manylinux_2_28_x86_64.whl (203.9 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

stringzilla-2.0.2-cp312-cp312-manylinux_2_28_aarch64.whl (201.7 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

stringzilla-2.0.2-cp312-cp312-macosx_11_0_arm64.whl (27.8 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

stringzilla-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl (30.0 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

stringzilla-2.0.2-cp312-cp312-macosx_10_9_universal2.whl (48.7 kB view details)

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

stringzilla-2.0.2-cp311-cp311-win_amd64.whl (31.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

stringzilla-2.0.2-cp311-cp311-manylinux_2_28_x86_64.whl (202.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

stringzilla-2.0.2-cp311-cp311-manylinux_2_28_aarch64.whl (201.3 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

stringzilla-2.0.2-cp311-cp311-macosx_11_0_arm64.whl (27.7 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

stringzilla-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl (29.9 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

stringzilla-2.0.2-cp311-cp311-macosx_10_9_universal2.whl (48.5 kB view details)

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

stringzilla-2.0.2-cp310-cp310-win_amd64.whl (30.8 kB view details)

Uploaded CPython 3.10 Windows x86-64

stringzilla-2.0.2-cp310-cp310-manylinux_2_28_x86_64.whl (202.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

stringzilla-2.0.2-cp310-cp310-manylinux_2_28_aarch64.whl (200.3 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

stringzilla-2.0.2-cp310-cp310-macosx_11_0_arm64.whl (27.7 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

stringzilla-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl (29.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

stringzilla-2.0.2-cp310-cp310-macosx_10_9_universal2.whl (48.5 kB view details)

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

stringzilla-2.0.2-cp39-cp39-win_amd64.whl (31.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

stringzilla-2.0.2-cp39-cp39-manylinux_2_28_x86_64.whl (201.3 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

stringzilla-2.0.2-cp39-cp39-manylinux_2_28_aarch64.whl (199.4 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

stringzilla-2.0.2-cp39-cp39-macosx_11_0_arm64.whl (27.7 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

stringzilla-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl (29.9 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

stringzilla-2.0.2-cp39-cp39-macosx_10_9_universal2.whl (48.5 kB view details)

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

stringzilla-2.0.2-cp38-cp38-win_amd64.whl (30.9 kB view details)

Uploaded CPython 3.8 Windows x86-64

stringzilla-2.0.2-cp38-cp38-manylinux_2_28_x86_64.whl (200.5 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

stringzilla-2.0.2-cp38-cp38-manylinux_2_28_aarch64.whl (198.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

stringzilla-2.0.2-cp38-cp38-macosx_11_0_arm64.whl (27.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

stringzilla-2.0.2-cp38-cp38-macosx_10_9_x86_64.whl (29.9 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

stringzilla-2.0.2-cp38-cp38-macosx_10_9_universal2.whl (48.5 kB view details)

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

stringzilla-2.0.2-cp37-cp37m-win_amd64.whl (30.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_x86_64.whl (199.0 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.28+ x86-64

stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_aarch64.whl (196.7 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.28+ ARM64

stringzilla-2.0.2-cp37-cp37m-macosx_10_9_x86_64.whl (29.7 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

stringzilla-2.0.2-cp36-cp36m-win_amd64.whl (30.8 kB view details)

Uploaded CPython 3.6m Windows x86-64

stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_x86_64.whl (199.0 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.28+ x86-64

stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_aarch64.whl (196.7 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.28+ ARM64

stringzilla-2.0.2-cp36-cp36m-macosx_10_9_x86_64.whl (29.7 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file stringzilla-2.0.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 97b6131798e9b996084def7e69b2f8cd6d324dda5422c031ce0adce49d87bc69
MD5 5ad1110d23c1b61dd0330605257a4f6c
BLAKE2b-256 2da0b293921cf0ab6dfdb15c53992944801f587bbd600b51fde6ccdbf111d9fa

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 40c0eaffd660e2a35d500f06db9addd91b539a301463c33000b22ae08cf1ec5f
MD5 bf77a191b2882a7ef83a6a126efcb435
BLAKE2b-256 325e70a512f44dd8a4e8c297c21b3105ac5965a89a7fecb8a9e9ea356e8270ba

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fa890af7efc5da3d8fbbba4fb02403e2785b4263d46ceaaf1c1b0eee2f2366a6
MD5 4803368be79c4158d682fad16e982947
BLAKE2b-256 e797bb4bfa24fdba8f536656ae261f94fc9a65fd8c3f3e3a62fe80e8308ffaef

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05260fea0cb576248d16be09ecedec75a28cf1c12d6c6a2650ea843bdb79b0a1
MD5 f954ced99d633c3f9905fb08dd835b3b
BLAKE2b-256 4545211a1eb9032a764aaf27bf7c98a376b034316ee5d915f7662158f447509b

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0eb52a12ec935e3842a2fc08e9496166967823ec9bdf43a3dad0017bba193abb
MD5 fcb73fd13c95cad6745868e4ef444142
BLAKE2b-256 fbd46f1fd869cca27c431541cf0cfd087650311dcffaa1bb01f68958e487606d

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2c341139c53f2edde50262c857df02875a18963759acb838f07d1192eb3d2480
MD5 f891ba3d50581f55efddde44e98101ff
BLAKE2b-256 a274c208564672c19a6653429c2c661b6052780157b281a70dbd0d2e803d3ba9

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 267d9388e1f76bca16f847f86e36d632758be6d5f4f5f6cee6b27f76e09c448b
MD5 c41462e4d125d7c5a389b77ab8ad9958
BLAKE2b-256 329275e77aa3b95b920b116cde2340877eb5c28b2b575a0d742c2cd573edcee6

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be504b41b55fd4ebf980d6c024c5a2cf6c39e01492228d73234af72da5592b5b
MD5 f8b27762ecdebe7501d93ca1fa76707c
BLAKE2b-256 1ff1815a1f8736480cea4b6e9e5151c6a1a6a54cf33e1097ac42e2d98233cc78

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e975de69386aa0ba5f46cb4b4c28254452eeed10dc22088e16c3c0f5c96d7836
MD5 c0eae9f201412ea02b5779aa7891cc9c
BLAKE2b-256 b84cb5bd80bbd287bbf94473a0d84332039c6ae4743631a67d653757c2df458b

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48b23c04263832b2d71b3236b77606ee1a34b92aaad0b15c4a1bbb4da5ec6a91
MD5 bab37e0cc1998228109322c378737a8f
BLAKE2b-256 8ad52e171fe8d46e1bdb79b5cc5eed93e0afa8c7f2ef16c9e7a074abcfd3e9e9

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3e259dc11c6e0b278336d701321a03c409533b61fc27615d0ddbe1482ee65353
MD5 6e0d3c92f8cc0a5aef3e29e2d35b7195
BLAKE2b-256 cb4a846f3432b3a7e975889e5a9d2ae2d2f2735882551f9dd8298ee8a8c55362

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5a11c0fd904fe1386dcd055ea35f84c213ed64356959681d06d9a734597217c1
MD5 7f288c7171b46119663a7b94291efecf
BLAKE2b-256 65c3637e69cf4b91830f19a7692d7c8f01e2c8be3ec99d2462920504334193ba

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 795b5c8c88db673a25b979094f4f17025b06a6fffbb3b4163ce1a02efa2e82c4
MD5 c7ab1397433453e15b4bf3fbdc92f05f
BLAKE2b-256 e439e2877ac72afdf54cf911ce09d77258e2cd187a228248c3784754c9c59047

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ff52b46b070debd64a328144854c4044de5af3c25b58b7dceb647b8a2792613
MD5 a2570bb1cc15574755d529b88fa0e0a7
BLAKE2b-256 f0543ad984945de5e3cdf9cd7e1b65e7e1ea367ebd5742ae973e7953fbf4afeb

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 065587ec6df81897cb991c75e35fba60171629706edde5dc301a52ca1c75b530
MD5 168f1f26989ac4fa612aaaddd2560e40
BLAKE2b-256 4fb357b08eb1c14a1af9169b77951db1ee7f1a68fe9ccd8e527f5528fe981868

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39ab9b796a18cdb5ac4a6254b40dc67a46dc77e73f6a8e1800c8890127b6843d
MD5 2175fbfec2484f15773fea0b8d7dca59
BLAKE2b-256 f1b334d6de8bea90eb74ba862352a85f0d75158b31dc1c4b6ffb78a55f6ce257

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e58cabc1cdc2557016623faed6a6ad6c7ed63a7698eeb99a18fe256cea33b6e2
MD5 47a73d6e58de6f2e0c4121162a035df0
BLAKE2b-256 7d5b3890524507e7cc7d15244ac26ef01bc6947fafe565c3d118d5f0f529494d

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f292f087a303ba14c2945d0f09ecaa38366c70efeeb8b4dcfd25ec73e56e11a3
MD5 91de6f95974dd9b91b16a597f1ea3118
BLAKE2b-256 f97bdacb322a493c90063e4f4de601e46352dead198e89169c04cbf8bdbd1130

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5a6eff2a9f2087e11a13d33edfc5e552621239ad1bb95dd89ef8c06a839b6b35
MD5 894a1f39ad97ee7780243f98cb7b763e
BLAKE2b-256 0a87da95881a66e150b657e8c8b112b98e3d4baa94131bf28032f067b3cd27e9

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb2fa3afe004d54bef79ab4564dcdbc250e7a458a0144049e6fd676503d70272
MD5 707adb6d4e32185f1b976d1570418dcc
BLAKE2b-256 1bb6a7955bf78d81297056c1222e3b362b83a406f14f0bd6505a8515bc295ea1

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1ecbfa1a3359d970c21c7d863c908c02999f73118487b2f0a1cdaa4902b13257
MD5 4bc84dd865fe91d393a35562a5968f3d
BLAKE2b-256 032b02090f367857054a54a4662a111f9b28a92639c91643e7816dbbaceb0808

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f248136017cf4024193261c022021d472140389f149e1cf9ebc4055f426a1c30
MD5 445ae77e8d165d7f984ef9c1a79be60f
BLAKE2b-256 81e85df79ed2116d62d0f22f2e101c2d830ac0e6e693f37c940122c35ca48ba9

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 08bc1a54d5673a646e25a167785109267c4ebc66976735cb30337e69dd098041
MD5 fd5334183f634fc23334607f3c940486
BLAKE2b-256 5f5913b4e6ef432603bdc167a71c2e45ce0a4bda2b211e45a82914cb34e53f42

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a7f1f016a8606556da3d87bffc368282c39a3f4e46a21108fa395da5aae42d8c
MD5 11d2d932d1dbc31e67bf1696cc264b16
BLAKE2b-256 2361277eb9ec317503ac6f92fc0acff534057e23ef9fb793312842a98f48262d

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 cda28fdcf29df8a754eef7b1909b7ddeda31f343b28b061c581c3bd066deb620
MD5 ff41c7d79fb6ca539918cd8fb213c2e4
BLAKE2b-256 7a96ab1fb6b528f0acbc376f353fcc41fc2c3a99d76da0ed28c6d3db4e60e156

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6bbbbd25819f5be406b821415e4e28b1f3c8bfb1e89c77f6f286c0a6d6033f95
MD5 ea84dcef890d080f96038773d4c2a653
BLAKE2b-256 47ea5d8a6c55939028b32ae33d86002e40932125eab390cfb0c832c7412bc92b

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 edf5560da8cb4b3c060ec0c46950d3eded115542511661fdde6bb71d008d5326
MD5 6adcd9b6e05d5a69fbc96b058cd62ab0
BLAKE2b-256 0fc20bc8e3fd5930702eeabc7acd9f24d194b13334971a2d5c04f5382879c90e

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d1f18493a6e4565fccb09bd123ce15df0867cccb50c514db892675bc03c5b0f6
MD5 7eb619f111f3e045b0d600d719f8dc09
BLAKE2b-256 8af3d6f20ebc494e3b398ac750255352892c859a641377c5e01547d844bee417

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2d76757f741bf6c5529e418487f50d28c017a5ca6029dca13ac5da38f00917d6
MD5 54034def5a603c56076a23bd958765f6
BLAKE2b-256 4ee07f57aadc4b845b14c1c15ad10e41643e100f992658993b506568be6d400b

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ebd914c498d5663f09c7d1892d3fe1c7b75846a1a2f44f3828f86991b54c5d14
MD5 4eece668c92c6224e7ec5a22f04b51fb
BLAKE2b-256 5f96f6ba0bf0c7c3784317f2a1d77dff12ee252139000eb8095eda9f87347d90

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 c5cd5e7a49b9653a25e3d0871fb99003a72b31246fdd7c89f6c19cb28fbc2768
MD5 3a8d3d52f9b55452f1775ef5eab9550d
BLAKE2b-256 13cdd4129c4e247957113590eeab0fbae9683d0372e2821023254cde6b2e6502

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d4b9f1c6f3189bdbfad0ca7bc5abab4c514328752d0a67e5d9bb789b3fa2e2e8
MD5 3110a198fa0d6e670af7d8cb4fbfad1b
BLAKE2b-256 f8f0e04f7019d198135ca1575cdad8b1ce0ade9ed56d719c3037229df656270c

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 af79b6e7782272bad40c43c044066dc4e143de972eb1e9e1d70172abcecdd3f4
MD5 43083b6cc159fa6b3f1322a0ebefab2f
BLAKE2b-256 50e33aaf3054a35c0bf85cd04f8ffdd723b389fc4807722bb69526ab60179b37

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ac1973289b46980b51c13e24bfd3f6b66dfe3881f9909f2fed8e78c20afa276f
MD5 adb49e7ab1868589ff653e1754ed953d
BLAKE2b-256 6f4c8c52843b8973f30f29b5c327447c4bc18b7b70f7a551ed0a53443ddb52ac

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 025a62e49cd4e82407aa4912e85c0b6532129edcae5155be436e051ab4f00a7c
MD5 e6969b1736a93ee2d283623e9cd3874c
BLAKE2b-256 9a12a2a886021634022b5b5dacbdc3c7b0e3a692aad46c5c7071a90ebc2134f5

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d283ce2ad67ca905264d943adcd280e362d53aa10441056b37bbd40fcc7ce36b
MD5 d60b53f5902dada41782a8644ffb049a
BLAKE2b-256 afe20af75adc064eae889ef0240a7b7a36bd45ece78462062fda41823a2e5527

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0b853995305d374dec9d51f9ebf12c8b37151e4e6139e58472b0a690f4be4cb6
MD5 eb05562c1370eb4f498e25bc324d8323
BLAKE2b-256 e192bbe37b2088de702b1acdda198d3c73a597878bc673ed216be8aa0b9f7c26

See more details on using hashes here.

File details

Details for the file stringzilla-2.0.2-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-2.0.2-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cae9823a15e2b28912620f0ac56192b5971e0f207da3d10cea6d5e17148f6f53
MD5 eaacfa5d540cea030175211fa067f83f
BLAKE2b-256 00bda4dba6758a7ebae2babf29532d4a38ab4e6a75bfb9ea663cb111c0f6cd57

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