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 🐍
- Install via pip:
pip install stringzilla
- 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:
- Replace PyBind11 with CPython, blog
- Bindings for JavaScript
- Faster string sorting algorithm
- Reverse-order operations in Python
- Splitting with multiple separators at once
- Splitting CSV rows into columns
- UTF-8 validation.
- Arm SVE backend
- Bindings for Java and Rust
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file stringzilla-2.0.2-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 31.8 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97b6131798e9b996084def7e69b2f8cd6d324dda5422c031ce0adce49d87bc69 |
|
MD5 | 5ad1110d23c1b61dd0330605257a4f6c |
|
BLAKE2b-256 | 2da0b293921cf0ab6dfdb15c53992944801f587bbd600b51fde6ccdbf111d9fa |
File details
Details for the file stringzilla-2.0.2-cp312-cp312-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 203.9 kB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40c0eaffd660e2a35d500f06db9addd91b539a301463c33000b22ae08cf1ec5f |
|
MD5 | bf77a191b2882a7ef83a6a126efcb435 |
|
BLAKE2b-256 | 325e70a512f44dd8a4e8c297c21b3105ac5965a89a7fecb8a9e9ea356e8270ba |
File details
Details for the file stringzilla-2.0.2-cp312-cp312-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp312-cp312-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 201.7 kB
- Tags: CPython 3.12, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa890af7efc5da3d8fbbba4fb02403e2785b4263d46ceaaf1c1b0eee2f2366a6 |
|
MD5 | 4803368be79c4158d682fad16e982947 |
|
BLAKE2b-256 | e797bb4bfa24fdba8f536656ae261f94fc9a65fd8c3f3e3a62fe80e8308ffaef |
File details
Details for the file stringzilla-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 27.8 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05260fea0cb576248d16be09ecedec75a28cf1c12d6c6a2650ea843bdb79b0a1 |
|
MD5 | f954ced99d633c3f9905fb08dd835b3b |
|
BLAKE2b-256 | 4545211a1eb9032a764aaf27bf7c98a376b034316ee5d915f7662158f447509b |
File details
Details for the file stringzilla-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl
- Upload date:
- Size: 30.0 kB
- Tags: CPython 3.12, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0eb52a12ec935e3842a2fc08e9496166967823ec9bdf43a3dad0017bba193abb |
|
MD5 | fcb73fd13c95cad6745868e4ef444142 |
|
BLAKE2b-256 | fbd46f1fd869cca27c431541cf0cfd087650311dcffaa1bb01f68958e487606d |
File details
Details for the file stringzilla-2.0.2-cp312-cp312-macosx_10_9_universal2.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp312-cp312-macosx_10_9_universal2.whl
- Upload date:
- Size: 48.7 kB
- Tags: CPython 3.12, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c341139c53f2edde50262c857df02875a18963759acb838f07d1192eb3d2480 |
|
MD5 | f891ba3d50581f55efddde44e98101ff |
|
BLAKE2b-256 | a274c208564672c19a6653429c2c661b6052780157b281a70dbd0d2e803d3ba9 |
File details
Details for the file stringzilla-2.0.2-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 31.7 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 267d9388e1f76bca16f847f86e36d632758be6d5f4f5f6cee6b27f76e09c448b |
|
MD5 | c41462e4d125d7c5a389b77ab8ad9958 |
|
BLAKE2b-256 | 329275e77aa3b95b920b116cde2340877eb5c28b2b575a0d742c2cd573edcee6 |
File details
Details for the file stringzilla-2.0.2-cp311-cp311-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 202.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be504b41b55fd4ebf980d6c024c5a2cf6c39e01492228d73234af72da5592b5b |
|
MD5 | f8b27762ecdebe7501d93ca1fa76707c |
|
BLAKE2b-256 | 1ff1815a1f8736480cea4b6e9e5151c6a1a6a54cf33e1097ac42e2d98233cc78 |
File details
Details for the file stringzilla-2.0.2-cp311-cp311-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp311-cp311-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 201.3 kB
- Tags: CPython 3.11, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e975de69386aa0ba5f46cb4b4c28254452eeed10dc22088e16c3c0f5c96d7836 |
|
MD5 | c0eae9f201412ea02b5779aa7891cc9c |
|
BLAKE2b-256 | b84cb5bd80bbd287bbf94473a0d84332039c6ae4743631a67d653757c2df458b |
File details
Details for the file stringzilla-2.0.2-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 27.7 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48b23c04263832b2d71b3236b77606ee1a34b92aaad0b15c4a1bbb4da5ec6a91 |
|
MD5 | bab37e0cc1998228109322c378737a8f |
|
BLAKE2b-256 | 8ad52e171fe8d46e1bdb79b5cc5eed93e0afa8c7f2ef16c9e7a074abcfd3e9e9 |
File details
Details for the file stringzilla-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 29.9 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e259dc11c6e0b278336d701321a03c409533b61fc27615d0ddbe1482ee65353 |
|
MD5 | 6e0d3c92f8cc0a5aef3e29e2d35b7195 |
|
BLAKE2b-256 | cb4a846f3432b3a7e975889e5a9d2ae2d2f2735882551f9dd8298ee8a8c55362 |
File details
Details for the file stringzilla-2.0.2-cp311-cp311-macosx_10_9_universal2.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp311-cp311-macosx_10_9_universal2.whl
- Upload date:
- Size: 48.5 kB
- Tags: CPython 3.11, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a11c0fd904fe1386dcd055ea35f84c213ed64356959681d06d9a734597217c1 |
|
MD5 | 7f288c7171b46119663a7b94291efecf |
|
BLAKE2b-256 | 65c3637e69cf4b91830f19a7692d7c8f01e2c8be3ec99d2462920504334193ba |
File details
Details for the file stringzilla-2.0.2-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 30.8 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 795b5c8c88db673a25b979094f4f17025b06a6fffbb3b4163ce1a02efa2e82c4 |
|
MD5 | c7ab1397433453e15b4bf3fbdc92f05f |
|
BLAKE2b-256 | e439e2877ac72afdf54cf911ce09d77258e2cd187a228248c3784754c9c59047 |
File details
Details for the file stringzilla-2.0.2-cp310-cp310-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 202.0 kB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ff52b46b070debd64a328144854c4044de5af3c25b58b7dceb647b8a2792613 |
|
MD5 | a2570bb1cc15574755d529b88fa0e0a7 |
|
BLAKE2b-256 | f0543ad984945de5e3cdf9cd7e1b65e7e1ea367ebd5742ae973e7953fbf4afeb |
File details
Details for the file stringzilla-2.0.2-cp310-cp310-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp310-cp310-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 200.3 kB
- Tags: CPython 3.10, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 065587ec6df81897cb991c75e35fba60171629706edde5dc301a52ca1c75b530 |
|
MD5 | 168f1f26989ac4fa612aaaddd2560e40 |
|
BLAKE2b-256 | 4fb357b08eb1c14a1af9169b77951db1ee7f1a68fe9ccd8e527f5528fe981868 |
File details
Details for the file stringzilla-2.0.2-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 27.7 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39ab9b796a18cdb5ac4a6254b40dc67a46dc77e73f6a8e1800c8890127b6843d |
|
MD5 | 2175fbfec2484f15773fea0b8d7dca59 |
|
BLAKE2b-256 | f1b334d6de8bea90eb74ba862352a85f0d75158b31dc1c4b6ffb78a55f6ce257 |
File details
Details for the file stringzilla-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 29.9 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e58cabc1cdc2557016623faed6a6ad6c7ed63a7698eeb99a18fe256cea33b6e2 |
|
MD5 | 47a73d6e58de6f2e0c4121162a035df0 |
|
BLAKE2b-256 | 7d5b3890524507e7cc7d15244ac26ef01bc6947fafe565c3d118d5f0f529494d |
File details
Details for the file stringzilla-2.0.2-cp310-cp310-macosx_10_9_universal2.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp310-cp310-macosx_10_9_universal2.whl
- Upload date:
- Size: 48.5 kB
- Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f292f087a303ba14c2945d0f09ecaa38366c70efeeb8b4dcfd25ec73e56e11a3 |
|
MD5 | 91de6f95974dd9b91b16a597f1ea3118 |
|
BLAKE2b-256 | f97bdacb322a493c90063e4f4de601e46352dead198e89169c04cbf8bdbd1130 |
File details
Details for the file stringzilla-2.0.2-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 31.8 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a6eff2a9f2087e11a13d33edfc5e552621239ad1bb95dd89ef8c06a839b6b35 |
|
MD5 | 894a1f39ad97ee7780243f98cb7b763e |
|
BLAKE2b-256 | 0a87da95881a66e150b657e8c8b112b98e3d4baa94131bf28032f067b3cd27e9 |
File details
Details for the file stringzilla-2.0.2-cp39-cp39-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp39-cp39-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 201.3 kB
- Tags: CPython 3.9, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb2fa3afe004d54bef79ab4564dcdbc250e7a458a0144049e6fd676503d70272 |
|
MD5 | 707adb6d4e32185f1b976d1570418dcc |
|
BLAKE2b-256 | 1bb6a7955bf78d81297056c1222e3b362b83a406f14f0bd6505a8515bc295ea1 |
File details
Details for the file stringzilla-2.0.2-cp39-cp39-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp39-cp39-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 199.4 kB
- Tags: CPython 3.9, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ecbfa1a3359d970c21c7d863c908c02999f73118487b2f0a1cdaa4902b13257 |
|
MD5 | 4bc84dd865fe91d393a35562a5968f3d |
|
BLAKE2b-256 | 032b02090f367857054a54a4662a111f9b28a92639c91643e7816dbbaceb0808 |
File details
Details for the file stringzilla-2.0.2-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 27.7 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f248136017cf4024193261c022021d472140389f149e1cf9ebc4055f426a1c30 |
|
MD5 | 445ae77e8d165d7f984ef9c1a79be60f |
|
BLAKE2b-256 | 81e85df79ed2116d62d0f22f2e101c2d830ac0e6e693f37c940122c35ca48ba9 |
File details
Details for the file stringzilla-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 29.9 kB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08bc1a54d5673a646e25a167785109267c4ebc66976735cb30337e69dd098041 |
|
MD5 | fd5334183f634fc23334607f3c940486 |
|
BLAKE2b-256 | 5f5913b4e6ef432603bdc167a71c2e45ce0a4bda2b211e45a82914cb34e53f42 |
File details
Details for the file stringzilla-2.0.2-cp39-cp39-macosx_10_9_universal2.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp39-cp39-macosx_10_9_universal2.whl
- Upload date:
- Size: 48.5 kB
- Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7f1f016a8606556da3d87bffc368282c39a3f4e46a21108fa395da5aae42d8c |
|
MD5 | 11d2d932d1dbc31e67bf1696cc264b16 |
|
BLAKE2b-256 | 2361277eb9ec317503ac6f92fc0acff534057e23ef9fb793312842a98f48262d |
File details
Details for the file stringzilla-2.0.2-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 30.9 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cda28fdcf29df8a754eef7b1909b7ddeda31f343b28b061c581c3bd066deb620 |
|
MD5 | ff41c7d79fb6ca539918cd8fb213c2e4 |
|
BLAKE2b-256 | 7a96ab1fb6b528f0acbc376f353fcc41fc2c3a99d76da0ed28c6d3db4e60e156 |
File details
Details for the file stringzilla-2.0.2-cp38-cp38-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp38-cp38-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 200.5 kB
- Tags: CPython 3.8, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bbbbd25819f5be406b821415e4e28b1f3c8bfb1e89c77f6f286c0a6d6033f95 |
|
MD5 | ea84dcef890d080f96038773d4c2a653 |
|
BLAKE2b-256 | 47ea5d8a6c55939028b32ae33d86002e40932125eab390cfb0c832c7412bc92b |
File details
Details for the file stringzilla-2.0.2-cp38-cp38-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp38-cp38-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 198.6 kB
- Tags: CPython 3.8, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | edf5560da8cb4b3c060ec0c46950d3eded115542511661fdde6bb71d008d5326 |
|
MD5 | 6adcd9b6e05d5a69fbc96b058cd62ab0 |
|
BLAKE2b-256 | 0fc20bc8e3fd5930702eeabc7acd9f24d194b13334971a2d5c04f5382879c90e |
File details
Details for the file stringzilla-2.0.2-cp38-cp38-macosx_11_0_arm64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp38-cp38-macosx_11_0_arm64.whl
- Upload date:
- Size: 27.7 kB
- Tags: CPython 3.8, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1f18493a6e4565fccb09bd123ce15df0867cccb50c514db892675bc03c5b0f6 |
|
MD5 | 7eb619f111f3e045b0d600d719f8dc09 |
|
BLAKE2b-256 | 8af3d6f20ebc494e3b398ac750255352892c859a641377c5e01547d844bee417 |
File details
Details for the file stringzilla-2.0.2-cp38-cp38-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp38-cp38-macosx_10_9_x86_64.whl
- Upload date:
- Size: 29.9 kB
- Tags: CPython 3.8, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d76757f741bf6c5529e418487f50d28c017a5ca6029dca13ac5da38f00917d6 |
|
MD5 | 54034def5a603c56076a23bd958765f6 |
|
BLAKE2b-256 | 4ee07f57aadc4b845b14c1c15ad10e41643e100f992658993b506568be6d400b |
File details
Details for the file stringzilla-2.0.2-cp38-cp38-macosx_10_9_universal2.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp38-cp38-macosx_10_9_universal2.whl
- Upload date:
- Size: 48.5 kB
- Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebd914c498d5663f09c7d1892d3fe1c7b75846a1a2f44f3828f86991b54c5d14 |
|
MD5 | 4eece668c92c6224e7ec5a22f04b51fb |
|
BLAKE2b-256 | 5f96f6ba0bf0c7c3784317f2a1d77dff12ee252139000eb8095eda9f87347d90 |
File details
Details for the file stringzilla-2.0.2-cp37-cp37m-win_amd64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 30.8 kB
- Tags: CPython 3.7m, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5cd5e7a49b9653a25e3d0871fb99003a72b31246fdd7c89f6c19cb28fbc2768 |
|
MD5 | 3a8d3d52f9b55452f1775ef5eab9550d |
|
BLAKE2b-256 | 13cdd4129c4e247957113590eeab0fbae9683d0372e2821023254cde6b2e6502 |
File details
Details for the file stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 199.0 kB
- Tags: CPython 3.7m, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4b9f1c6f3189bdbfad0ca7bc5abab4c514328752d0a67e5d9bb789b3fa2e2e8 |
|
MD5 | 3110a198fa0d6e670af7d8cb4fbfad1b |
|
BLAKE2b-256 | f8f0e04f7019d198135ca1575cdad8b1ce0ade9ed56d719c3037229df656270c |
File details
Details for the file stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp37-cp37m-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 196.7 kB
- Tags: CPython 3.7m, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af79b6e7782272bad40c43c044066dc4e143de972eb1e9e1d70172abcecdd3f4 |
|
MD5 | 43083b6cc159fa6b3f1322a0ebefab2f |
|
BLAKE2b-256 | 50e33aaf3054a35c0bf85cd04f8ffdd723b389fc4807722bb69526ab60179b37 |
File details
Details for the file stringzilla-2.0.2-cp37-cp37m-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp37-cp37m-macosx_10_9_x86_64.whl
- Upload date:
- Size: 29.7 kB
- Tags: CPython 3.7m, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac1973289b46980b51c13e24bfd3f6b66dfe3881f9909f2fed8e78c20afa276f |
|
MD5 | adb49e7ab1868589ff653e1754ed953d |
|
BLAKE2b-256 | 6f4c8c52843b8973f30f29b5c327447c4bc18b7b70f7a551ed0a53443ddb52ac |
File details
Details for the file stringzilla-2.0.2-cp36-cp36m-win_amd64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp36-cp36m-win_amd64.whl
- Upload date:
- Size: 30.8 kB
- Tags: CPython 3.6m, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 025a62e49cd4e82407aa4912e85c0b6532129edcae5155be436e051ab4f00a7c |
|
MD5 | e6969b1736a93ee2d283623e9cd3874c |
|
BLAKE2b-256 | 9a12a2a886021634022b5b5dacbdc3c7b0e3a692aad46c5c7071a90ebc2134f5 |
File details
Details for the file stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 199.0 kB
- Tags: CPython 3.6m, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d283ce2ad67ca905264d943adcd280e362d53aa10441056b37bbd40fcc7ce36b |
|
MD5 | d60b53f5902dada41782a8644ffb049a |
|
BLAKE2b-256 | afe20af75adc064eae889ef0240a7b7a36bd45ece78462062fda41823a2e5527 |
File details
Details for the file stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp36-cp36m-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 196.7 kB
- Tags: CPython 3.6m, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b853995305d374dec9d51f9ebf12c8b37151e4e6139e58472b0a690f4be4cb6 |
|
MD5 | eb05562c1370eb4f498e25bc324d8323 |
|
BLAKE2b-256 | e192bbe37b2088de702b1acdda198d3c73a597878bc673ed216be8aa0b9f7c26 |
File details
Details for the file stringzilla-2.0.2-cp36-cp36m-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: stringzilla-2.0.2-cp36-cp36m-macosx_10_9_x86_64.whl
- Upload date:
- Size: 29.7 kB
- Tags: CPython 3.6m, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cae9823a15e2b28912620f0ac56192b5971e0f207da3d10cea6d5e17148f6f53 |
|
MD5 | eaacfa5d540cea030175211fa067f83f |
|
BLAKE2b-256 | 00bda4dba6758a7ebae2babf29532d4a38ab4e6a75bfb9ea663cb111c0f6cd57 |