Skip to main content

Search, hash, sort, and process strings faster via SWAR and SIMD

Project description

StringZilla 🦖

StringZilla banner

Strings are the first fundamental data type every programming language implements in software rather than hardware — no CPU ships a dedicated "find substring" or "compute string hash" instruction. So most string-processing code still looks like for (i = 0; i < length; ++i) if (text[i] == 'x') … — a tangle of loops, branches, and per-character lookups, where the surrounding control flow is easily 10-100x more expensive than the character-level logic itself, whether the text is ASCII or UTF-8 encoded Unicode. Worse, chewing through one byte or codepoint at a time squanders the hardware: a modern CPU carries dozens of 16-64 byte architectural registers, and hundreds of physical ones to feed out-of-order execution. StringZilla reaches for those SIMD and SWAR instructions directly, offering one of the widest, fastest, and most portable collections of text-processing primitives anywhere.

StringZilla Python installs StringZilla Rust installs StringZilla code size

StringZilla is the GodZilla of string libraries, accelerating exact and fuzzy matching, hashing, edit distances, sorting, segmentation, and even random-string generation, with allocation-free lazily-evaluated iterators throughout.

  • It can be 3x faster than LibC, the C standard library, doing substring search on Arm.
  • It can be 10-70x faster than ICU for C and its C rewrite in UTF-8 handling, case folding, segmentation, and tokenization.
  • It can be 100x faster than NVIDIA's own libraries for on-GPU Levenshtein, NW, and SW edit distances.
  • It comes with built-in custom WebAssembly backend for sandboxed browser, DBMS, & LLM environments, custom RVV backend for RISC-V CPUs, PowerPC backend for IBM mainframes, LoongArch for Chinese domestic chips, and more!

Reach for it from your language of choice:

  • 🐂 C: Upgrade LibC's <string.h> to <stringzilla/stringzilla.h> in C 99
  • 🐉 C++: Upgrade STL's <string> to <stringzilla/stringzilla.hpp> in C++ 11
  • 🧮 CUDA: Process in-bulk with <stringzillas/stringzillas.cuh> in CUDA C++ 17
  • 🐍 Python: Upgrade your str to faster Str
  • 🦀 Rust: Use the StringZilla traits crate
  • 🦫 Go: Use the StringZilla cGo module
  • 🍎 Swift: Use the String+StringZilla extension
  • 🟨 JavaScript: Use the StringZilla library
  • 🐚 Shell: Accelerate common CLI tools with sz- prefix
  • 📚 Researcher? Jump to Algorithms & Design Decisions
  • 💡 Thinking to contribute? Look for "good first issues"
  • 🤝 And check the guide to set up the environment
  • Want more bindings or features? Let me know!

Who is this for?

  • For data-engineers parsing large datasets, like the CommonCrawl, RedPajama, or LAION.
  • For software engineers optimizing strings in their apps and services.
  • For bioinformaticians and search engineers looking for edit-distances for USearch.
  • For DBMS devs, optimizing LIKE, ORDER BY, and GROUP BY operations.
  • For hardware designers, needing a SWAR baseline for string-processing functionality.
  • For students studying SIMD/SWAR applications to non-data-parallel operations.

Performance

C C++ Python StringZilla
Unicode case-folding, expanding characters like ßss
.casefold
x86: 0.4 · arm: 0.4 GB/s
sz.utf8_uncased_fold
x86: 1.3 · arm: 0.8 GB/s
Unicode uncased substring search
icu.StringSearch
x86: 0.02 · arm: 0.07 GB/s
utf8_uncased_find
x86: 3.0 · arm: 2.1 GB/s
find the first occurrence of a random word from text, ≅ 5 bytes long
strstr 1
x86: 7.4 · arm: 3.0 GB/s
.find
x86: 2.9 · arm: 4.1 GB/s
.find
x86: 1.1 · arm: 2.1 GB/s
sz_find
x86: 10.6 · arm: 10.9 GB/s
find the last occurrence of a random word from text, ≅ 5 bytes long
.rfind
x86: 0.5 · arm: 0.6 GB/s
.rfind
x86: 0.9 · arm: 2.7 GB/s
sz_rfind
x86: 10.8 · arm: 9.3 GB/s
split lines separated by \n or \r 2
strcspn 1
x86: 5.42 · arm: 1.4 GB/s
.find_first_of
x86: 0.59 · arm: 0.6 GB/s
re.finditer
x86: 0.06 · arm: 0.32 GB/s
sz_find_byteset
x86: 4.08 · arm: 4.3 GB/s
find the last occurrence of any of 6 whitespaces 2
.find_last_of
x86: 0.25 · arm: 0.6 GB/s
sz_rfind_byteset
x86: 0.43 · arm: 4.4 GB/s
Random string from a given alphabet, 20 bytes long 3
rand() % n
x86: 18.0 · arm: 169.0 MB/s
uniform_int_distribution
x86: 47.2 · arm: 201.0 MB/s
join(random.choices(x))
x86: 13.3 · arm: 17.0 MB/s
sz_fill_random
x86: 56.2 · arm: 678.0 MB/s
Mapping characters with lookup table transforms
std::transform
x86: 3.81 · arm: 3.0 GB/s
str.translate
x86: 260.0 · arm: 78.0 MB/s
sz_lookup
x86: 21.2 · arm: 7.9 GB/s
Get sorted order, ≅ 8 million English words 4
qsort_r
x86: 3.55 · arm: 4.48 s
std::sort
x86: 2.79 · arm: 3.50 s
numpy.argsort
x86: 7.58 · arm: 14.59 s
sz_sequence_argsort
x86: 1.91 · arm: 0.92 s
Levenshtein edit distance, text lines ≅ 100 bytes long
via NLTK 5 and CuDF
x86: 1,615,306 · arm: 1,349,980 · cuda: 6,532,411,354 CUPS
szs_levenshtein_distances_t
x86: 3,434,427,548 · arm: 1,605,340,403 · cuda: 93,662,026,653 CUPS
Needleman-Wunsch alignment scores, proteins ≅ 1 K amino acids long
via biopython 6
x86: 575,981,513 · arm: 436,350,732 CUPS
szs_needleman_wunsch_scores_t
x86: 452,629,942 · arm: 520,170,239 · cuda: 9,017,327,818 CUPS

Most StringZilla modules ship ready-to-run benchmarks for C, C++, Python, and more. Grab them from ./scripts, and see CONTRIBUTING.md, test/README.md, and bench/README.md for instructions. On CPUs that permit misaligned loads, even the 64-bit SWAR baseline outruns both libc and the STL. For wider head-to-heads against Rust and Python favorites, browse the StringWars repository. To inspect collision resistance and distribution shapes for our hashers, see HashEvals.

Most benchmarks were conducted on a 1 GB English text corpus, with an average word length of 6 characters. The code was compiled with GCC 12, using glibc v2.35. The Arm numbers were refreshed on an AWS Graviton5 c9g instance (Neoverse-V3); the x86 numbers are from r7iz Intel Sapphire Rapids. Most modern Arm-based 64-bit CPUs will have similar relative speedups. Variance within x86 CPUs will be larger. For CUDA benchmarks, the Nvidia H100 GPUs were used. 1 Unlike other libraries, LibC requires strings to be NULL-terminated. 2 Six whitespaces in the ASCII set are: \t\n\v\f\r. Python's and other standard libraries have specialized functions for those. 3 All modulo operations were conducted with uint8_t to allow compilers more optimization opportunities. The C++ STL and StringZilla benchmarks used a 64-bit Mersenne Twister as the generator. For C, C++, and StringZilla, an in-place update of the string was used. In Python every string had to be allocated as a new object, which makes it less fair. 4 Contrary to the popular opinion, Python's default sorted function works faster than the C and C++ standard libraries. That holds for large lists or tuples of strings, but fails as soon as you need more complex logic, like sorting dictionaries by a string key, or producing the "sorted order" permutation. The latter is very common in database engines and is most similar to numpy.argsort. The current StringZilla solution can be at least 4x faster without loss of generality. 5 Most Python libraries for strings are also implemented in C. 6 Unlike the rest of BioPython, the alignment score computation is implemented in C.

Why StringZilla

StringZilla replaces a stack of specialized libraries with one portable dependency, and outpaces each on its own turf.

Alternative Scope It Covers StringZilla Edge
libc, via strstr/memmem/memcpy byte search and memory operations bidirectional search, hashing, sorting, and sets too, up to 3x faster on Arm
ICU and ICU4X Unicode case, segmentation, normalization stable C ABI, no hidden allocations, 10-70x faster on folding and segmentation
RapidFuzz and edit-distance libraries fuzzy matching and Levenshtein batched on CPU cores, and 100x faster than NVIDIA's libraries on GPUs
xxHash, aHash, and other fast hashers non-cryptographic hashing an AES-based hash on par or faster on single hashes, and far ahead with hash_multiseed for sketches and filters
std::string and std::sort general strings and sorting an SSO container, lazy allocation-free views, and allocator-routed sorting

Because StringZilla mirrors the familiar standard APIs, adoption is mostly a search-and-replace.

In Python:

Operation Standard StringZilla
Find a substring "...".find(x) sz.find("...", x)
Sort strings sorted(items) sz.Strs(items).sorted()
Split on a separator "...".split(sep) sz.Str("...").split(sep)
Case-fold for matching "...".casefold() sz.utf8_uncased_fold("...")
Streaming SHA-256 hashlib.sha256() sz.Sha256()

In C++:

Operation Standard StringZilla
Find a substring std::string::find sz::string::find
Sort a collection std::sort of indices sz::argsort
Hash map with string keys std::unordered_map<std::string, V> std::unordered_map<std::string, V, sz::hash, sz::equal_to>
Intersect two string sets std::set_intersection sz::try_intersect

Functionality

StringZilla is compatible with most modern CPUs, and provides a broad range of functionality. It's split into 2 layers:

  1. StringZilla: single-header C library and C++ wrapper for high-performance string operations.
  2. StringZillas: parallel CPU/GPU backends used for large-batch operations and accelerators.

Having a second C++/CUDA layer greatly simplifies the implementation of similarity scoring and fingerprinting functions, which would otherwise require too much error-prone boilerplate code in pure C. Both layers are designed to be extremely portable:

  • across both little-endian and big-endian architectures.
  • across 32-bit and 64-bit hardware architectures.
  • across operating systems and compilers.
  • across ASCII and UTF-8 encoded inputs.

Not all features are available across all bindings. Consider contributing if you need a feature that's not yet implemented.

Maturity C C++ Python Rust JS Swift Go
Substring Search 🌳
Character Set Search 🌳
Sorting & Sequence Operations 🌳
Set Intersection & Joins 🧐
Lazy Ranges, Compressed Arrays 🌳
One-Shot & Streaming Hashes 🌳
Cryptographic Hashes 🌳
Small String Class 🧐
Random String Generation 🌳
Unicode Case Folding 🧐
Uncased UTF-8 Search 🚧
TR29 Word Boundary Detection 🚧
TR29 Grapheme Segmentation 🚧
TR29 Sentence Segmentation 🚧
UAX14 Line-Break Detection 🚧
Unicode Normalization 🚧
Codepoint Counting & Indexing 🌳
Parallel Similarity Scoring 🌳
Parallel Rolling Fingerprints 🌳

🌳 parts are used in production. 🧐 parts are in beta. 🚧 parts are under active development, and are likely to break in subsequent releases. ✅ are implemented. ⚪ are considered. ❌ are not intended.

Quick Start

Each binding has its own install command, import line, and dedicated guide, all collected in the per-language sections below. The batch and GPU engines ship separately, as stringzillas-cpus and stringzillas-cuda on PyPI and the cpus and cuda crate features; each binding's guide covers the details.

Python

pip install stringzilla · guide: python/README.md

import stringzilla as sz

text = sz.Str("the quick brown fox")
text.find("brown")          # 10
text.split()                # Strs(['the', 'quick', 'brown', 'fox'])
sz.hash("hello")            # fast 64-bit hash

The Python package upgrades str and bytes with SIMD search, sorting, hashing, UTF-8 segmentation, and Unicode case-folding, plus the batch-parallel stringzillas engines for edit distances and rolling fingerprints.

C and C++

Header-only, or pull it in with CMake FetchContent · guides: include/stringzilla/README.md and include/stringzillas/README.md

#include <stringzilla/stringzilla.h>
sz_find(haystack, h_length, "brown", 5); // pointer to the match, or NULL
#include <stringzilla/stringzilla.hpp>
namespace sz = ashvardanian::stringzilla;
sz::string_view("the quick brown fox").find("brown"); // 10

The header-only library covers search, hashing, sorting, comparison, set intersection, memory operations, and lazy UTF-8 segmentation; the bulk and GPU engines for edit distances, alignment scores, and fingerprints live in the companion stringzillas distribution.

Rust

cargo add stringzilla · guide: rust/README.md

use stringzilla::sz;

assert_eq!(sz::find("the quick brown fox", "brown"), Some(10));
let digest = sz::hash("hello"); // fast 64-bit hash

The crate adds SIMD search, sorting, hashing, and UTF-8 segmentation to any AsRef<[u8]>, with the optional stringzillas engines for batch edit distances and rolling fingerprints.

JavaScript

npm install stringzilla · guide: javascript/README.md

import sz from "stringzilla";

sz.find(Buffer.from("the quick brown fox"), Buffer.from("brown")); // => 10n
sz.hash(Buffer.from("hello"));                                     // 64-bit BigInt

The Node-API addon runs on Node, Bun, and Deno, exposing zero-copy search, hashing, SHA-256, and Unicode case-folding over Buffer objects.

Swift

Add the Swift Package Manager dependency · guide: swift/README.md

import StringZilla

let i = "the quick brown fox".findFirst(substring: "brown") // Index of "brown"
let h = "hello".hash()                                       // fast 64-bit hash

The Foundation-free package extends String with SIMD search, comparison, hashing, Unicode case-folding, normalization, and word and line segmentation, on Linux and embedded targets as well as Apple platforms.

Go

go get github.com/ashvardanian/stringzilla/golang · guide: golang/README.md

import sz "github.com/ashvardanian/stringzilla/golang"

sz.Index("the quick brown fox", "brown") // 10
sz.Hash("hello", 0)                      // fast 64-bit hash

The cgo module exposes byte-level search, counting, checksums, SHA-256, and UTF-8 case-folding to Go.

C#

dotnet add package StringZilla · guide: csharp/README.md

using StringZilla;

Sz.IndexOf("the quick brown fox"u8, "brown"u8); // 10
Sz.Hash("hello"u8);                             // fast 64-bit hash

Zero-copy over ReadOnlySpan<byte> (and Unity's NativeArray<byte>); net8.0, NativeAOT-friendly. Exposes search, hashing, SHA-256, UTF-8 segmentation, case-folding, normalization, sorting, and allocation-free splitting and iteration.

Java

Maven com.github.ashvardanian:stringzilla · guide: java/README.md

import com.stringzilla.StringZilla;

StringZilla.indexOf("the quick brown fox".getBytes(), "brown".getBytes());  // 10
StringZilla.hash("hello".getBytes());                                       // fast 64-bit hash

Pure Foreign Function & Memory API (JDK 22+), no JNI. Zero-copy over byte[] and MemorySegment — including Lucene BytesRef and Spark UTF8String backing memory. Lazy Iterable/Stream splitting and iteration, with zero-allocation cursors as the escape hatch.

Algorithms & Design Decisions

StringZilla aims to optimize some of the slowest string operations. Some popular operations, however, like equality comparisons and relative order checking, almost always complete on some of the very first bytes in either string. In such operations vectorization is almost useless, unless huge and very similar strings are considered. StringZilla implements those operations as well, but won't result in substantial speedups. Where vectorization stops being effective, parallelism takes over with the new layered cake architecture:

  • StringZilla C library w/out dependencies
  • StringZillas parallel extensions:
    • Parallel C++ algorithms built with ForkUnion
    • Parallel CUDA algorithms for Nvidia GPUs
    • Parallel ROCm algorithms for AMD GPUs 🔜

Exact Substring Search

Substring search algorithms are generally divided into: comparison-based, automaton-based, and bit-parallel. Different families are effective for different alphabet sizes and needle lengths. The more operations are needed per-character - the more effective SIMD would be. The longer the needle - the more effective the skip-tables are. StringZilla uses different exact substring search algorithms for different needle lengths and backends:

  • When no SIMD is available - SWAR (SIMD Within A Register) algorithms are used on 64-bit words.
  • Boyer-Moore-Horspool (BMH) algorithm with Raita heuristic variation for longer needles.
  • SIMD backends compare characters at multiple strategically chosen offsets within the needle to reduce degeneracy.

On very short needles, especially 1-4 characters long, brute force with SIMD is the fastest solution. On mid-length needles, bit-parallel algorithms are effective, as the character masks fit into 32-bit or 64-bit words. Either way, if the needle is under 64-bytes long, on haystack traversal we will still fetch every CPU cache line. So the only way to improve performance is to reduce the number of comparisons.

For 2-byte needles, see sz_find_2byte_serial_ in include/stringzilla/find.h:

https://github.com/ashvardanian/StringZilla/blob/e1966de91600298d3c5cf4fe7be40d434f0f405e/include/stringzilla/find.h#L422-L463

Going beyond that, to long needles, Boyer-Moore (BM) and its variants are often the best choice. It has two tables: the good-suffix shift and the bad-character shift. Common choice is to use the simplified BMH algorithm, which only uses the bad-character shift table, reducing the pre-processing time. We do the same for mid-length needles up to 256 bytes long. That way the stack-allocated shift table remains small.

For mid-length needles (≤256 bytes), see sz_find_horspool_upto_256bytes_serial_ in include/stringzilla/find.h:

https://github.com/ashvardanian/StringZilla/blob/e1966de91600298d3c5cf4fe7be40d434f0f405e/include/stringzilla/find.h#L620-L667

In the C++ Standards Library, the std::string::find function uses the BMH algorithm with Raita's heuristic. Before comparing the entire string, it matches the first, last, and the middle character. Very practical, but can be slow for repetitive characters. Both SWAR and SIMD backends of StringZilla have a cheap pre-processing step, where we locate unique characters. This makes the library a lot more practical when dealing with non-English corpora.

The offset selection heuristic is implemented in sz_locate_needle_anomalies_ in include/stringzilla/find.h:

https://github.com/ashvardanian/StringZilla/blob/e1966de91600298d3c5cf4fe7be40d434f0f405e/include/stringzilla/find.h#L244-L305

All those, still, have $O(hn)$ worst case complexity. To guarantee $O(h)$ worst case time complexity, the Apostolico-Giancarlo (AG) algorithm adds an additional skip-table. Preprocessing phase is $O(n+sigma)$ in time and space. On traversal, performs from $(h/n)$ to $(3h/2)$ comparisons. It however, isn't practical on modern CPUs. A simpler idea, the Galil-rule might be a more relevant optimizations, if many matches must be found.

Other algorithms previously considered and deprecated:

  • Apostolico-Giancarlo algorithm for longer needles. Control-flow is too complex for efficient vectorization.
  • Shift-Or-based Bitap algorithm for short needles. Slower than SWAR.
  • Horspool-style bad-character check in SIMD backends. Effective only for very long needles, and very uneven character distributions between the needle and the haystack. Faster "character-in-set" check needed to generalize.

§ Reading materials. Exact String Matching Algorithms in Java. SIMD-friendly algorithms for substring searching.

Exact Multiple Substring Search

Few algorithms for multiple substring search are known. Most are based on the Aho-Corasick automaton, which is a generalization of the KMP algorithm. The naive implementation, however:

  • Allocates disjoint memory for each Trie node and Automaton state.
  • Requires a lot of pointer chasing, limiting speculative execution.
  • Has a lot of branches and conditional moves, which are hard to predict.
  • Matches text a character at a time, which is slow on modern CPUs.

There are several ways to improve the original algorithm. One is to use sparse DFA representation, which is more cache-friendly, but would require extra processing to navigate state transitions.

Levenshtein Edit Distance

Levenshtein distance is the best known edit-distance for strings, that checks, how many insertions, deletions, and substitutions are needed to transform one string to another. It's extensively used in approximate string-matching, spell-checking, and bioinformatics.

The computational cost of the Levenshtein distance is $O(n * m)$, where $n$ and $m$ are the lengths of the string arguments. To compute that, the naive approach requires $O(n * m)$ space to store the "Levenshtein matrix", the bottom-right corner of which will contain the Levenshtein distance. The algorithm producing the matrix has been simultaneously studied/discovered by the Soviet mathematicians Vladimir Levenshtein in 1965, Taras Vintsyuk in 1968, and American computer scientists - Robert Wagner, David Sankoff, Michael J. Fischer in the following years. Several optimizations are known:

  1. Space Optimization: The matrix can be computed in $O(min(n,m))$ space, by only storing the last two rows of the matrix.
  2. Divide and Conquer: Hirschberg's algorithm can be applied to decompose the computation into subtasks.
  3. Automata: Levenshtein automata can be effective, if one of the strings doesn't change, and is a subject to many comparisons.
  4. Shift-Or: Bit-parallel algorithms transpose the matrix into a bit-matrix, and perform bitwise operations on it.

The last approach is quite powerful and performant, and is used by the great RapidFuzz library. It's less known, than the others, derived from the Baeza-Yates-Gonnet algorithm, extended to bounded edit-distance search by Manber and Wu in 1990s, and further extended by Gene Myers in 1999 and Heikki Hyyro between 2002 and 2004.

StringZilla focuses on a different approach, extensively used in Unum's internal combinatorial optimization libraries. It doesn't change the number of trivial operations, but performs them in a different order, removing the data dependency, that occurs when computing the insertion costs. StringZilla evaluates diagonals instead of rows, exploiting the fact that all cells within a diagonal are independent, and can be computed in parallel. We'll store 3 diagonals instead of the 2 rows, and each consecutive diagonal will be computed from the previous two. Substitution costs will come from the sooner diagonal, while insertion and deletion costs will come from the later diagonal.

Row-by-Row Algorithm
Computing row 4:
    ∅  A  B  C  D  E
 ∅  0  1  2  3  4  5
 P  1  ░  ░  ░  ░  ░
 Q  2  ■  ■  ■  ■  ■
 R  3  ■  ■  □  →  .
 S  4  .  .  .  .  .
 T  5  .  .  .  .  .
Anti-Diagonal Algorithm
Computing diagonal 5:
    ∅  A  B  C  D  E
 ∅  0  1  2  3  4  5
 P  1  ░  ░  ■  ■  □
 Q  2  ░  ■  ■  □  ↘
 R  3  ■  ■  □  ↘  .
 S  4  ■  □  ↘  .  .
 T  5  □  ↘  .  .  .
Legend:
0,1,2,3... = initialization constants    = cells processed and forgotten    = stored cells    = computing in parallel    → ↘ = movement direction    . = cells to compute later

This results in much better vectorization for intra-core parallelism and potentially multi-core evaluation of a single request. Moreover, it's easy to generalize to weighted edit-distances, where the cost of a substitution between two characters may not be the same for all pairs, often used in bioinformatics.

§ Reading materials. Faster Levenshtein Distances with a SIMD-friendly Traversal Order.

Needleman-Wunsch and Smith-Waterman Scores for Bioinformatics

The field of bioinformatics studies various representations of biological structures. The "primary" representations are generally strings over sparse alphabets:

  • DNA sequences, where the alphabet is {A, C, G, T}, ranging from ~100 characters for short reads to 3 billion for the human genome.
  • RNA sequences, where the alphabet is {A, C, G, U}, ranging from ~50 characters for tRNA to thousands for mRNA.
  • Proteins, where the alphabet is made of 22 amino acids, ranging from 2 characters for dipeptide to 35,000 for Titin, the longest protein.

The shorter the representation, the more often researchers may want to use custom substitution matrices. Meaning that the cost of a substitution between two characters may not be the same for all pairs. In the general case the serial algorithm works for arbitrary substitution costs for each of 256×256 possible character pairs. That lookup table, however, is too large to fit into CPU registers, so StringZilla ships a 32×32 substitution-matrix design, the error_costs_32x32_t type in include/stringzillas/similarities.hpp, which fits into 1 KB with single-byte "error costs" and stays resident across the diagonal sweep. That said, most BLOSUM and PAM substitution matrices only contain 4-bit values, so they can be packed even further.

Memory Copying, Fills, and Moves

A lot has been written about the time computers spend copying memory and how that operation is implemented in LibC. Interestingly, the operation can still be improved, as most Assembly implementations use outdated instructions. Even performance-oriented STL replacements, like Meta's Folly v2024.09.23 focus on AVX2, and don't take advantage of the new masked instructions in AVX-512 or SVE.

In AVX-512, StringZilla uses non-temporal stores to avoid cache pollution, when dealing with very large strings. Moreover, it handles the unaligned head and the tails of the target buffer separately, ensuring that writes in big copies are always aligned to cache-line boundaries. That's true for both AVX2 and AVX-512 backends.

StringZilla also contains "drafts" of smarter, but less efficient algorithms, that minimize the number of unaligned loads, performing shuffles and permutations. That's a topic for future research, as the performance gains are not yet satisfactory.

§ Reading materials. memset benchmarks by Nadav Rotem. Cache Associativity by Sergey Slotin.

Hashing

StringZilla implements a high-performance 64-bit hash function inspired by the "AquaHash", "aHash", and "GxHash" design and optimized for modern CPU architectures. It passes the rigorous SMHasher test suite, including the --extra flag with no collisions.

The core algorithm operates on a dual state that runs two independent mixers over the same bytes and folds them together at the end:

  • AES State: Initialized with the seed XOR-ed against π constants and advanced with one AES encryption round per block, providing the strong avalanche behavior.
  • Sum State: Initialized from a second slice of the π constants and advanced as an additive byte sum under a fixed permutation, cheap to compute and complementary to the AES mixing.

Because the AES round is the backbone, the per-ISA backends lean on each platform's cryptographic instructions rather than emulating them: AES-NI and VAES on x86, SHA-NI on Goldmont, NEON-AES, NEON-SHA, and SVE2-AES on Arm, and RVV-crypto on RISC-V, in the include/stringzilla/hash/{neonaes,neonsha,sve2aes,rvvcrypto}.h files. To keep the streaming path off the stack, the incremental construction uses an in-register streaming-state merge: each incoming run is slid into a resident register with a masked load and a blend, so partial blocks never spill to memory.

For strings ≤64 bytes, a minimal state processes data in 16-byte blocks. Longer strings employ a 4× wider state (512 bits) that processes 64-byte chunks, maximizing throughput on modern superscalar CPUs. The algorithm can be expressed in pseudocode as:

function sz_hash(text: u8[], length: usize, seed: u64) -> u64:
    # 1024 bits worth of π constants
    pi: u64[16] = [
        0x243F6A8885A308D3, 0x13198A2E03707344, 0xA4093822299F31D0, 0x082EFA98EC4E6C89,
        0x452821E638D01377, 0xBE5466CF34E90C6C, 0xC0AC29B7C97C50DD, 0x3F84D5B5B5470917,
        0x9216D5D98979FB1B, 0xD1310BA698DFB5AC, 0x2FFD72DBD01ADFB7, 0xB8E1AFED6A267E96,
        0xBA7C9045F12C7F99, 0x24A19947B3916CF7, 0x0801F2E2858EFC16, 0x636920D871574E69]

    # Permutation order for the sum state
    shuffle_pattern: u8[16] = [
        0x04, 0x0b, 0x09, 0x06, 0x08, 0x0d, 0x0f, 0x05,
        0x0e, 0x03, 0x01, 0x0c, 0x00, 0x07, 0x0a, 0x02]

    # Initialize key and states
    keys_u64s: u64[2] = [seed, seed]
    aes_u64s: u64[2] = [seed ⊕ pi[0], seed ⊕ pi[1]]
    sum_u64s: u64[2] = [seed ⊕ pi[8], seed ⊕ pi[9]]

    if length ≤ 64:
        # Small input: process 1-4 zero-padded blocks of 16 bytes each
        blocks_u8s: u8[16][] = split_into_blocks(text, length, 16)
        for each block_u8s: u8[16] in blocks_u8s:
            aes_u64s = AESENC(aes_u64s, block_u8s)
            sum_u64s = SHUFFLE(sum_u64s, shuffle_pattern) + block_u8s
    else:
        # Large input: use 4× wider 512-bits states
        aes_u64s: u64[8] = [
            seed ⊕ pi[0], seed ⊕ pi[1], seed ⊕ pi[2], seed ⊕ pi[3],
            seed ⊕ pi[4], seed ⊕ pi[5], seed ⊕ pi[6], seed ⊕ pi[7]]
        sum_u64s: u64[8] = [
            seed ⊕ pi[8], seed ⊕ pi[9], seed ⊕ pi[10], seed ⊕ pi[11],
            seed ⊕ pi[12], seed ⊕ pi[13], seed ⊕ pi[14], seed ⊕ pi[15]]

        # Process 64-byte chunks (4×16-byte blocks)
        for each chunk_u8s: u8[64] in text:
            blocks_u8s: u8[16][4] = split_chunk_into_4_blocks(chunk_u8s)
            for i in 0..3:
                offset: usize = i * 2  # Each lane stores two u64s
                aes_u64s[offset:offset+1] = AESENC(aes_u64s[offset:offset+1], blocks_u8s[i])
                sum_u64s[offset:offset+1] = SHUFFLE(sum_u64s[offset:offset+1], shuffle_pattern) + blocks_u8s[i]

        # Fold 8×u64 state back to 2×u64 for finalization
        aes_u64s: u64[2] = fold_to_2u64(aes_u64s)
        sum_u64s: u64[2] = fold_to_2u64(sum_u64s)

    # Finalization: mix length into key
    key_with_length: u64[2] = [keys_u64s[0] + length, keys_u64s[1]]

    # Multiple AES rounds for SMHasher compliance
    mixed_u64s: u64[2] = AESENC(sum_u64s, aes_u64s)
    result_u64s: u64[2] = AESENC(AESENC(mixed_u64s, key_with_length), mixed_u64s)

    return result_u64s[0]  # Extract low 64 bits

This allows us to balance several design trade-offs. First, it allows us to achieve a high port-level parallelism. Looking at AVX-512 capable CPUs and their ZMM instructions, on each cycle, we'll have at least 2 ports busy when dealing with long strings:

  • VAESENC: 5 cycles on port 0 on Intel Ice Lake, 4 cycles on ports 0/1 on AMD Zen4.
  • VPSHUFB_Z: 3 cycles on port 5 on Intel Ice Lake, 2 cycles on ports 1/2 on AMD Zen4.
  • VPADDQ: 1 cycle on ports 0/5 on Intel Ice Lake, 1 cycle on ports 0/1/2/3 on AMD Zen4.

When dealing with smaller strings, we design our approach to avoid large registers and maintain the CPU at the same energy state, thereby avoiding downclocking and expensive power-state transitions.

Unlike some AES-accelerated alternatives, the length of the input is not mixed into the AES block at the start to allow incremental construction, when the final length is not known in advance. Also, unlike some alternatives, with "masked" AVX-512 and "predicated" SVE loads, we avoid expensive block-shuffling procedures on non-divisible-by-16 lengths.

§ Reading materials. Stress-testing hash functions for avalance behaviour, collision bias, and distribution.

SHA-256 Checksums

In addition to the fast AES-based hash, StringZilla implements hardware-accelerated SHA-256 cryptographic checksums. The implementation follows the FIPS 180-4 specification and provides multiple backends.

Random Generation

StringZilla implements a fast Pseudorandom Number Generator inspired by the "AES-CTR-128" algorithm, reusing the same AES primitives as the hash function. Unlike "NIST SP 800-90A" which uses multiple AES rounds, StringZilla uses only one round of AES mixing for performance while maintaining reproducible output across platforms. The generator operates in counter mode with AESENC(nonce + lane_index, nonce ⊕ pi_constants), rotating through the first 512 bits of π for each 16-byte block. The only state required to reproduce an output is a 64-bit nonce, which is much cheaper than a Mersenne Twister.

Sorting

For lexicographic sorting of string collections, StringZilla exports pointer-sized n‑grams ("pgrams") into a contiguous buffer to improve locality, then recursively QuickSorts those pgrams with a 3‑way partition and dives into equal pgrams to compare deeper characters. Very small inputs fall back to insertion sort.

  • Average time complexity: O(n log n)
  • Worst-case time complexity: quadratic (due to QuickSort), mitigated in practice by 3‑way partitioning and the n‑gram staging

Unicode 17, UTF-8, and Wide Characters

Most StringZilla operations are byte-level, so they work well with ASCII and UTF-8 content out of the box. In some cases, like edit-distance computation, the result of byte-level evaluation and character-level evaluation may differ.

  • szs_levenshtein_distances_utf8("αβγδ", "αγδ") == 1 — one unicode symbol.
  • szs_levenshtein_distances("αβγδ", "αγδ") == 2 — one unicode symbol is two bytes long.

Java, JavaScript, Python 2, C#, and Objective-C, however, use wide characters (wchar) - two byte long codes, instead of the more reasonable fixed-length UTF-32 or variable-length UTF-8. This leads to all kinds of offset-counting issues when facing four-byte long Unicode characters. StringZilla uses proper 32-bit "runes" to represent unpacked Unicode codepoints, ensuring correct results in all operations. Moreover, it implements the Unicode 17.0 standard, being practically the only library besides ICU and PCRE2 to do so, but with order(s) of magnitude better performance.

Case Folding and Uncased Search

StringZilla provides Unicode-aware uncased substring search that handles the full complexity of Unicode case folding. This includes multi-character expansions:

Character Codepoint UTF-8 Bytes Case-Folds To Result Bytes
ß U+00DF C3 9F ss 73 73
U+FB03 EF AC 83 ffi 66 66 69
İ U+0130 C4 B0 i + ◌̇ 69 CC 87

The search returns byte offsets and lengths in the original haystack, correctly handling length differences. For example, searching for "STRASSE" (7 bytes) in "Straße" (7 bytes: 53 74 72 61 C3 9F 65) succeeds because both case-fold to "strasse".

Note that Turkish İ and ASCII I are distinct: İstanbul case-folds to i̇stanbul (with combining dot), while ISTANBUL case-folds to istanbul (without). They will not match each other — this is correct Unicode behavior for Turkish locale handling.

For wide-character environments (Java, JavaScript, Python 2, C#), consider transcoding with simdutf.

UTF-8 Decoding and Unicode Segmentation

Codepoint decoding walks the input in register-wide chunks, classifying each lead byte by its continuation-byte count through a register-resident lookup table rather than branching byte by byte. It runs under a fill-and-drain contract: a decode-once step fills a buffer of runes, and a separate drain step emits them, which keeps the hot loop tight and lets callers consume runes at their own pace. Ill-formed input is handled without derailing the stream, re-syncing on the maximal-subpart rule and substituting exactly one U+FFFD before continuing. The decoder lives in include/stringzilla/utf8_runes.h.

UAX-29 word, grapheme, and sentence boundaries, together with UAX-14 line-break opportunities, are found in a single pass. Each codepoint is classified against register-resident property tables and the boundary rules are applied directly, so combining marks, emoji zero-width-joiner sequences, and regional-indicator flags are all handled without a second traversal. The segmenters live in the utf8_wordbreaks*, utf8_graphemes*, utf8_sentences*, and utf8_linebreaks* files.

Unicode Normalization and Case Folding

Normalization implements the UAX-15 NFC, NFD, NFKC, and NFKD forms through canonical and compatibility decomposition, canonical-combining-class reordering, and recomposition. Quick-check flags short-circuit the work, so text that is already in the requested form is passed through without the expensive decomposition and reordering passes. The normalizers live in the utf8_norm* files.

Case folding uses register-resident lookup tables for the common single-codepoint folds and dedicated expansion paths for the multi-byte ones, such as ß folding to ss and the ligature folding to ffi. Uncased search folds on the fly, so the haystack is never pre-folded into a second buffer; the matcher tracks the byte-length mismatch whenever a folded form differs in length from its source, returning offsets into the original text. The folding paths live in the utf8_uncased* files.

Set Intersection

StringZilla intersects two deduplicated string collections through a power-of-two open-addressing hash table. The hash is seeded for adversarial resistance and the probe sequence runs under a bounded collision budget, so the intersection completes in linear time and space rather than degrading on crafted inputs. The implementation lives in include/stringzilla/intersect.h.

Rolling Fingerprints and MinHash

For near-duplicate detection and multi-pattern search at scale, StringZilla slides multiple Rabin-Karp rolling-hash windows of different widths over each document at once. Each window tracks its running minimum to build MinHash sketches, and the same passes feed Count-Min-Sketch counters, so a single traversal yields both the similarity signatures and the frequency estimates. The implementation lives in the include/stringzillas/fingerprints* files.

GPU Edit Distances

On the GPU, short pairs are scored entirely in registers, one thread per pair, holding the anti-diagonal wavefront of the dynamic-programming matrix in registers instead of shared memory. For short sequences this is several times faster than the classic shared-memory anti-diagonal kernel, which is dominated by shared-memory traffic at small sizes. Hopper DPX instructions accelerate the min-plus recurrence, and a warp-per-pair path covers older GPUs that lack them. The kernels live in include/stringzillas/similarities/hopper.cuh and include/stringzillas/similarities/kepler.cuh.

Dynamic Dispatch

Due to the high-level of fragmentation of SIMD support in different CPUs, StringZilla names its backends after select CPU generations and instruction-set extensions. The full v5 set spans the serial SWAR fallback, x86 (Westmere, Goldmont, Haswell, Skylake, Ice Lake), Arm (NEON, NEON-AES, NEON-SHA, SVE, SVE2, SVE2-AES), RISC-V (RVV, RVV-crypto), LoongArch (LASX), IBM Power (PowerVSX), and WebAssembly (v128 and relaxed v128). You can query supported backends and use them manually. Use it to guarantee constant performance, or to explore how different algorithms scale on your hardware.

sz_find(text, length, pattern, 3);          // Auto-dispatch
sz_find_westmere(text, length, pattern, 3);  // Intel Westmere+ SSE4.2
sz_find_haswell(text, length, pattern, 3);  // Intel Haswell+ AVX2
sz_find_skylake(text, length, pattern, 3);  // Intel Skylake+ AVX-512
sz_find_neon(text, length, pattern, 3);     // Arm NEON 128-bit
sz_find_sve(text, length, pattern, 3);      // Arm SVE 128/256/512/1024/2048-bit

StringZilla automatically picks the most advanced backend for the given CPU. Similarly, in Python, you can log the auto-detected capabilities:

python -c "import stringzilla; print(stringzilla.__capabilities__)"         # e.g. ('serial', 'westmere', 'goldmont', 'haswell', 'skylake', 'icelake')
python -c "import stringzilla; print(stringzilla.__capabilities_str__)"     # e.g. "serial, westmere, goldmont, haswell, skylake, icelake"
# Other targets report their own names: Arm "neon, neonaes, neonsha, sve, sve2, sve2aes",
# WebAssembly "v128, v128relaxed", RISC-V "rvv", LoongArch "lasx", IBM Power "powervsx".

You can also explicitly set the backend to use, or scope the backend to a specific function.

import stringzilla as sz
sz.reset_capabilities(('serial',))          # Force SWAR backend
sz.reset_capabilities(('haswell',))         # Force AVX2 backend
sz.reset_capabilities(('neon',))            # Force NEON backend
sz.reset_capabilities(sz.__capabilities__)  # Reset to auto-dispatch

Contributing 👾

Please check out the contributing guide for more details on how to set up the development environment and contribute to this project. If you like this project, you may also enjoy USearch, UCall, UForm, and SimSIMD. 🤗

If you like strings and value efficiency, you may also enjoy the following projects:

  • simdutf - transcoding UTF-8, UTF-16, and UTF-32 LE and BE.
  • hyperscan - regular expressions with SIMD acceleration.
  • pyahocorasick - Aho-Corasick algorithm in Python.
  • rapidfuzz - fast string matching in C++ and Python.
  • memchr - fast string search in Rust.

If you are looking for more reading materials on this topic, consider the following:

Citation

If StringZilla helps your research or product, please cite it:

@software{Vardanian_StringZilla,
  author = {Vardanian, Ash},
  title = {{StringZilla: Fast SIMD, SWAR, and GPGPU String Processing}},
  doi = {10.5281/zenodo.21472333},
  url = {https://github.com/ashvardanian/StringZilla},
  license = {Apache-2.0}
}

A machine-readable CITATION.cff is provided at the repository root.

License 📜

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

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 Distribution

stringzilla-5.0.0.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

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

stringzilla-5.0.0-cp314-cp314-win_arm64.whl (404.6 kB view details)

Uploaded CPython 3.14Windows ARM64

stringzilla-5.0.0-cp314-cp314-win_amd64.whl (474.9 kB view details)

Uploaded CPython 3.14Windows x86-64

stringzilla-5.0.0-cp314-cp314-win32.whl (295.3 kB view details)

Uploaded CPython 3.14Windows x86

stringzilla-5.0.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

stringzilla-5.0.0-cp314-cp314-musllinux_1_2_s390x.whl (823.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ s390x

stringzilla-5.0.0-cp314-cp314-musllinux_1_2_riscv64.whl (790.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ riscv64

stringzilla-5.0.0-cp314-cp314-musllinux_1_2_ppc64le.whl (983.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ppc64le

stringzilla-5.0.0-cp314-cp314-musllinux_1_2_i686.whl (800.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ i686

stringzilla-5.0.0-cp314-cp314-musllinux_1_2_armv7l.whl (792.0 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARMv7l

stringzilla-5.0.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

stringzilla-5.0.0-cp314-cp314-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl (815.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ riscv64manylinux: glibc 2.39+ riscv64

stringzilla-5.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

stringzilla-5.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (833.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

stringzilla-5.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (989.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

stringzilla-5.0.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl (991.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARMv7lmanylinux: glibc 2.31+ ARMv7l

stringzilla-5.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.6 MB view details)

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

stringzilla-5.0.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (797.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

stringzilla-5.0.0-cp314-cp314-macosx_11_0_arm64.whl (385.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

stringzilla-5.0.0-cp314-cp314-macosx_10_15_x86_64.whl (398.2 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

stringzilla-5.0.0-cp313-cp313-win_arm64.whl (388.1 kB view details)

Uploaded CPython 3.13Windows ARM64

stringzilla-5.0.0-cp313-cp313-win_amd64.whl (459.1 kB view details)

Uploaded CPython 3.13Windows x86-64

stringzilla-5.0.0-cp313-cp313-win32.whl (285.7 kB view details)

Uploaded CPython 3.13Windows x86

stringzilla-5.0.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

stringzilla-5.0.0-cp313-cp313-musllinux_1_2_s390x.whl (824.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ s390x

stringzilla-5.0.0-cp313-cp313-musllinux_1_2_riscv64.whl (790.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ riscv64

stringzilla-5.0.0-cp313-cp313-musllinux_1_2_ppc64le.whl (983.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ppc64le

stringzilla-5.0.0-cp313-cp313-musllinux_1_2_i686.whl (800.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

stringzilla-5.0.0-cp313-cp313-musllinux_1_2_armv7l.whl (793.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARMv7l

stringzilla-5.0.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

stringzilla-5.0.0-cp313-cp313-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl (815.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ riscv64manylinux: glibc 2.39+ riscv64

stringzilla-5.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

stringzilla-5.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (834.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

stringzilla-5.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (988.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

stringzilla-5.0.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl (991.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7lmanylinux: glibc 2.31+ ARMv7l

stringzilla-5.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.6 MB view details)

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

stringzilla-5.0.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (797.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

stringzilla-5.0.0-cp313-cp313-macosx_11_0_arm64.whl (384.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

stringzilla-5.0.0-cp313-cp313-macosx_10_13_x86_64.whl (398.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

stringzilla-5.0.0-cp312-cp312-win_arm64.whl (388.1 kB view details)

Uploaded CPython 3.12Windows ARM64

stringzilla-5.0.0-cp312-cp312-win_amd64.whl (459.1 kB view details)

Uploaded CPython 3.12Windows x86-64

stringzilla-5.0.0-cp312-cp312-win32.whl (285.7 kB view details)

Uploaded CPython 3.12Windows x86

stringzilla-5.0.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

stringzilla-5.0.0-cp312-cp312-musllinux_1_2_s390x.whl (824.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ s390x

stringzilla-5.0.0-cp312-cp312-musllinux_1_2_riscv64.whl (790.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ riscv64

stringzilla-5.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl (983.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ppc64le

stringzilla-5.0.0-cp312-cp312-musllinux_1_2_i686.whl (800.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

stringzilla-5.0.0-cp312-cp312-musllinux_1_2_armv7l.whl (793.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARMv7l

stringzilla-5.0.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

stringzilla-5.0.0-cp312-cp312-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl (815.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ riscv64manylinux: glibc 2.39+ riscv64

stringzilla-5.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

stringzilla-5.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (834.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

stringzilla-5.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (988.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

stringzilla-5.0.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl (992.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7lmanylinux: glibc 2.31+ ARMv7l

stringzilla-5.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.6 MB view details)

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

stringzilla-5.0.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (797.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

stringzilla-5.0.0-cp312-cp312-macosx_11_0_arm64.whl (384.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

stringzilla-5.0.0-cp312-cp312-macosx_10_13_x86_64.whl (398.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

stringzilla-5.0.0-cp311-cp311-win_arm64.whl (387.9 kB view details)

Uploaded CPython 3.11Windows ARM64

stringzilla-5.0.0-cp311-cp311-win_amd64.whl (458.8 kB view details)

Uploaded CPython 3.11Windows x86-64

stringzilla-5.0.0-cp311-cp311-win32.whl (285.2 kB view details)

Uploaded CPython 3.11Windows x86

stringzilla-5.0.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

stringzilla-5.0.0-cp311-cp311-musllinux_1_2_s390x.whl (822.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ s390x

stringzilla-5.0.0-cp311-cp311-musllinux_1_2_riscv64.whl (791.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ riscv64

stringzilla-5.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl (982.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ppc64le

stringzilla-5.0.0-cp311-cp311-musllinux_1_2_i686.whl (799.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

stringzilla-5.0.0-cp311-cp311-musllinux_1_2_armv7l.whl (791.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARMv7l

stringzilla-5.0.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

stringzilla-5.0.0-cp311-cp311-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl (816.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ riscv64manylinux: glibc 2.39+ riscv64

stringzilla-5.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

stringzilla-5.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (832.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

stringzilla-5.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (988.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

stringzilla-5.0.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl (986.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7lmanylinux: glibc 2.31+ ARMv7l

stringzilla-5.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.6 MB view details)

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

stringzilla-5.0.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (796.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

stringzilla-5.0.0-cp311-cp311-macosx_11_0_arm64.whl (384.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

stringzilla-5.0.0-cp311-cp311-macosx_10_13_x86_64.whl (397.5 kB view details)

Uploaded CPython 3.11macOS 10.13+ x86-64

stringzilla-5.0.0-cp310-cp310-win_amd64.whl (458.8 kB view details)

Uploaded CPython 3.10Windows x86-64

stringzilla-5.0.0-cp310-cp310-win32.whl (285.2 kB view details)

Uploaded CPython 3.10Windows x86

stringzilla-5.0.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

stringzilla-5.0.0-cp310-cp310-musllinux_1_2_s390x.whl (813.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ s390x

stringzilla-5.0.0-cp310-cp310-musllinux_1_2_riscv64.whl (785.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ riscv64

stringzilla-5.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl (973.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ppc64le

stringzilla-5.0.0-cp310-cp310-musllinux_1_2_i686.whl (792.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

stringzilla-5.0.0-cp310-cp310-musllinux_1_2_armv7l.whl (783.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARMv7l

stringzilla-5.0.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

stringzilla-5.0.0-cp310-cp310-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl (809.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ riscv64manylinux: glibc 2.39+ riscv64

stringzilla-5.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

stringzilla-5.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (825.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

stringzilla-5.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (981.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

stringzilla-5.0.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl (978.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7lmanylinux: glibc 2.31+ ARMv7l

stringzilla-5.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.6 MB view details)

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

stringzilla-5.0.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (790.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

stringzilla-5.0.0-cp310-cp310-macosx_11_0_arm64.whl (384.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

stringzilla-5.0.0-cp310-cp310-macosx_10_13_x86_64.whl (397.5 kB view details)

Uploaded CPython 3.10macOS 10.13+ x86-64

File details

Details for the file stringzilla-5.0.0.tar.gz.

File metadata

  • Download URL: stringzilla-5.0.0.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0.tar.gz
Algorithm Hash digest
SHA256 f706ced9ffe4be11119a7c2c9e62e0e8734b5e9dbe79396b182fa0cc27715723
MD5 ff73424b847341709297d72118a397f1
BLAKE2b-256 f71847d2626217ab8eb30f8837bf73a05f2719864cc24e4cc93219477f00e76c

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 c234a36009f5a6a18e5a28f2a0c7be9be8fc2e0020457b09bbf71ba6d5e3f4bb
MD5 dc2f8ed1fc4567856a95850e0a3a4e06
BLAKE2b-256 ab40c595f8437d79ab12ba43e2032bc98effd2e629236e65cff546639f31312e

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: stringzilla-5.0.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 474.9 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c350b9b4fec99b86e701a4f621ce5bc60bf49357f2bbfaf0d2085a58a869d685
MD5 bb4e3ae42ebd0a862e42d2dae7db5639
BLAKE2b-256 bf5b562a337b36056364d5df2c1a9d9727f244f4eb84eaabeef49c30763651cd

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-win32.whl.

File metadata

  • Download URL: stringzilla-5.0.0-cp314-cp314-win32.whl
  • Upload date:
  • Size: 295.3 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 27b5da26e7d7a91fd4e7a83f4e36eea80fa56e941afd4d203af9903ea61a5437
MD5 b09abc20c153f69529a74320c2362647
BLAKE2b-256 dbe6034515024c52dfb688cac85c233ff83a3c3e4e689628607bf78ef66e8b4c

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5df5668959565b7fdc261ec03c73efd69bd1bbdccfd959ea71846d4116ab4f40
MD5 57d262385a5ec875cbef8c52bece8c07
BLAKE2b-256 60f3b16778426dc297332d725709ed2faaaf6668a0217bba7893f14b53b595c2

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 5159f944cbac5379a08ab3450fdc02d924fbf74de813d269e28a367b6aabeecf
MD5 3ef32e275892965cf6cc7812cb0f8bd7
BLAKE2b-256 18cebb0f2408c0500b5a710ccb251e3ce11c81686b7f5d05bf9abf0fabd75b72

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 81f69ba388c5a7878d378b55d4a2e12a12af9b65b4498dd929531a149ed70fb8
MD5 649edb08f97e74b287e684b2b268e554
BLAKE2b-256 2ceaecf821dfce5eb75c9bf9fa2c4a29f3872b6bbbd4de6d90b7fba97311fa32

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 9fb30285a25660cb3e297f2051d20d084895044dc1c88891e3bd0d6e8e618d33
MD5 24a9b2fbebcff51f7cf09962c2fed14e
BLAKE2b-256 7208347df6eaa61050a5dc3823508ece6d7c6dc38ac4bfa8da368bb4eeaa3b27

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 e4b0582c6e1a2165e340d3cd59c3101fe692837104dbab9f1e717dd50a35e343
MD5 0911300d005c0540487f3f3d6e34cd17
BLAKE2b-256 34baa7f9b54760639142d069a852fa4c9871305502b280b3612a9bd5b83b5b30

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 3270769aac3139f5fc3850d6d710310beb418158faf04977965328ffbebfda94
MD5 9c7a2b798abdbb12ea66e83fcbc57708
BLAKE2b-256 11896b3a2f4c1f2ebce7c5bb2fac279ef3dfcc6aeb1274d60887d7b5abc7bb72

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 61f6a41ad6d2550325174fd88df06c554d324bbbea7697848d7d474d63b05257
MD5 1d17aed8b8d77e09d9ec91bfad0e40d6
BLAKE2b-256 550db1b7321d4a373ca2e9db0d6e93c6ddf68ea7c15741a048f33e62cd51e938

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 3833a56525b862a49f51b32db4e651e3d2ad71502513aaf57bc46601cf4d10a6
MD5 05de4e6ce065c77a5f155b0ae353d7bf
BLAKE2b-256 84757733d602250e9b15083c8db9f5ac2194cbeeb45b2695f1dee6434b1cc5f1

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b14b767ff2f3ceaf2ce50b4d5a148527f9d755adfe3203ceaacfda6eab16fda2
MD5 10122fc4d63e0bb64f6afd123e3d159d
BLAKE2b-256 d12d26caca7a1c00870f16467b3884c80888bafd605c7dc8a7f1f6de912cd8cb

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 2fd5fe52ec662b6b63e37527ab32ba94befc4fe38b60a85d6bafd4495dcbf7c5
MD5 77b4a9f67f49a811b27fd936d57377e0
BLAKE2b-256 1f40c2d8a94688a3d3e300cdcf5380afaa486442ef770f9209aa280eca9f49eb

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 fd0c78d0686fae44bf8e0e989a87a3ae8913adb088a86598bf0e34f99432736a
MD5 b982ff62250f35f594e28cb605d23850
BLAKE2b-256 e3b00ad2d6ac97c48db9e878f62f54d55df248e9eabb27ae3a8cb140b24271ad

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Algorithm Hash digest
SHA256 b542635d9febce315252fa58551ed084da06381c6efbbb3496d14a550c0672b1
MD5 fa8ba7ee9a8c60e2b7b37972f6dbb59a
BLAKE2b-256 cfa03acae6f4793c557dd4bee604de896f360d90e0aa3a35013368f0e19ea90c

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 342d68352c6f31aad3a4b8f3d04ece83876241b9dd5500b34710a0b41f58bab5
MD5 51f31b6f98f781bc08ff5cdd915b1d0c
BLAKE2b-256 dc607f529841749f819ac0b7f2d6a8e534ffb8d5c96b84f290d8f37033ebe72b

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 c1823173865504cae8a94f19830634a2f1636f3e6ce0f31f35ea5e7e37dcc30f
MD5 cfedc17aa14ff6f807748ae05a1b0086
BLAKE2b-256 936e128a261ce841b6fd5985bac6626a4a8fa4ed030474395cb52e6dc0e4ae87

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c274ca64ec480276f13115ce787899d205426d060c45483cbd1b0a1dd5dbf99
MD5 2fb63b4c248abf369000f07112e3a595
BLAKE2b-256 b2ace788bedc34719fc3a970b07803a499433aaa55be6cd83924c5c2912cfcc0

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 69fcdb6f94ed4e921e8d422bdb9453e9b153c76f05e29e4e24f62626a0b849af
MD5 47d0897d32e49c0311e5bab125ebf6af
BLAKE2b-256 93985d038ba8c6bfee9cddd300b2fb7c54dd44a7c474585084839bf4db516b07

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 1dc560ec567fbd895e78c9e24e9ce1df6545b8b358465df9c36238b5cc27029a
MD5 cd089e440d6fe66e2bfa162d8b7578f3
BLAKE2b-256 436ced9281e4dfd65a7833c4ad67cb94636e49647617d09632594ad85f969043

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: stringzilla-5.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 459.1 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dd52712e5bad591f4d98a6a2ffee9387a14d703e44ac319684e502bd6f972c88
MD5 833eb00a8a116f29a3d670e206a89140
BLAKE2b-256 88ec5d08b6b1661014c988a64d424a3b896566791edf552ad74535b385e4ffd5

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-win32.whl.

File metadata

  • Download URL: stringzilla-5.0.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 285.7 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 2d22d14a21a2be2d6ee8710f5cf25e7a2f52ebc353fcf1c1ff758e1972e3f459
MD5 4416febb48e8c8c3446b585f8c4614c7
BLAKE2b-256 9eaeffa5922e73a7b3a11f0e19e30a0f891c4d88f29d80c2e91990bf0eb7c7aa

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 314c5b00ff61007bd09bc4fb8cc8d1de13d64c2d2095e5fde1b449948196d2c9
MD5 c423031b1af4e96471899b3e43adf039
BLAKE2b-256 63d35094ed49a6c7e79c8d45c3b48c1c25e795d393e37ffcbb5b7b78c5280eb4

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 a0beb2cfab8d800d6a4f094a8262810dd09f028234269404d5090dc2434ed8d7
MD5 719618ea6fa7058b83baea278b4728b6
BLAKE2b-256 96baa0777c77fb0b637a09505f2c9e6376691c7bdcc846895af9f97f95f633eb

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 6a0ad888d096a8e916cc8d2714834ac9e0550a0d0a1a8c2d113589d7e44c28c4
MD5 a018f8857553bd6619cb8b7c21f423f1
BLAKE2b-256 eb3f827f705a3d9fd6d0607a4272ef082843a2f71a3b8d89c01fe2be4a39d797

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 4eb9bc38421d2bfbca03f7896bfce018332385dc7d8463a617eb737e3768d0c9
MD5 7db732d755ca22df2a53fb7c1036f117
BLAKE2b-256 921e2da93cb4169630cf7e1d720bd177288531c8a2d1f667d1f08dcf856f5037

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c94246953ba3290a06640d99f2e9f8e5c96280a8445628a43288b87ed36ce686
MD5 fa957ae5ac43c1e7c0f8f1dbc2255664
BLAKE2b-256 88da9d71c73e4f9fa556d1d3fb5284af94810d6da682cd97a5188e7fdf1ac892

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d9ef397acc825d71edf44b1e2eebd601af8c52d2c9908c3c10a7e503e1825a95
MD5 0782460e5c7895fd35f62e3fb4e5917b
BLAKE2b-256 9fdbd6d5690c32389817c0a076e0623ee3e3578942f957249e5eb07902c24005

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e4aaa99f81a654e76fcc961ed9f1c1087feedcc61248ae2656fcb0aa6e330251
MD5 dc591341546ea0572623e73e9d318be9
BLAKE2b-256 83d024193b844bf60ac7912cad88f165d9494a130a8423e35fd8418e59dc6ddd

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 67085e5a98bb2283078876f1161c2623391eaf7c6f45cb71baf3ac6f2fa6cbb7
MD5 ef60e1690b096112ff5ace0c14befd0b
BLAKE2b-256 c846a87b6f0e6ec0e80320f4523878976b9a3c3c62c440a6dc10edbb1d672261

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 94766a4b9ee5d106fbca60d638188d239f18ad2123bd4abd4ae4a1880936bdf5
MD5 9abd1061637135ca52047fc1690a24c6
BLAKE2b-256 2afd2c91205903a3469ebecbfe27f5a5105f197aca9cdc89c6cb91a606225633

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 8fde4392dda6451d35d6a2a07fa152d1b2799aedd3eec731a39fe269f666f0dc
MD5 40aaf346e01d806df0f0a5c05e0d3be5
BLAKE2b-256 eb29505866a911d89bfe7db8cdc3f8bed035f0b286c9169d8054e2022757f08a

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 0d9d0fae59d63dc62eb3d0e8a4bfac78474732cb7d1cc2f00599d11ca668d840
MD5 4e4b8763bdd7358304394abb1b14bcfc
BLAKE2b-256 d7a81b891c03cbe8f3b3c6b97ca07258ec0763a08f7831beb594d1fea4a1eb2c

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Algorithm Hash digest
SHA256 d3ace08410371a61aa098fedccea128f75c54ac311f4d895872409eeb161d587
MD5 1bc9840cab8a4c354b8cf65a25914235
BLAKE2b-256 61ec006b3bb05f58dd0db539086047a87ef616a2d7c0dabafc518545e72da092

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b1530087decc70c29f601b39e945430a2b52caab76c1910d2f200b1ff8911a66
MD5 73a7ab612d6dac74d56b0c8e5cf3be2b
BLAKE2b-256 9ecb7914e5944df24f1c48cd87c1c6d694ccf65b5a2e05c26e51036a0cfad0bf

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 e9223be844ef8d979773141fe862027624759a0157cdf7735718ec2eeec33e34
MD5 e71f3327ebc05d04de9b15b362d126ea
BLAKE2b-256 0c11fa1234b9a33c787d947423300dfecda583f1aea195bbe2e16c73f6427423

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 38c056960991a6c5c4754447509a2aa9014835106a090496cc0c84d9a56d75a6
MD5 5fca1a8d8481540a3bec82c0357bcfbc
BLAKE2b-256 70d9b38f0ae880d56027e7e2dfe5655e89f9b2d4f972d39a735848684bd55d03

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7fb2c886e60a427a8635938f78b8a3df80d2ea5c8724f13b8d5796e1382d79dc
MD5 546b15e35f4283108afbfb90cec5c1a7
BLAKE2b-256 20c783c33d68afedda81b48e0161dd18f250ec1317bad31bd7080dec7e7326cf

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 ac0cbdf9a6748766022b01bc9fa6a908e266d74662fefe3fb60e9f9f60731ebc
MD5 2987a7dac8cfe545fde30dab254cc192
BLAKE2b-256 8c1bb794d70cb38c398f771d6dcf73a1f43aa2c169606550dd07aeafe402f212

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stringzilla-5.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 459.1 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cb5d5defdcb7d0886e7a2f452afe44270b23d1a57823e0da7215ea31f9747a06
MD5 75edf43d7f396c890c9db7cf8adf38ff
BLAKE2b-256 7a022565714c05ee915edea68fbac7599e66d2f6d0d92804ec90ee89b08ee41d

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: stringzilla-5.0.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 285.7 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f0042722392840f5efd7b3136d6ad24faded6cfdf1a980083dae622fd996e006
MD5 a620c6b1aa665edd1904575e295967c6
BLAKE2b-256 84de31c227bf8f677f81fffa09f820eeb90e7c602ee97220dc4da9c48f82db89

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5bbfd16ffc7f14632afcd7986ed5f21c937d144911726d3b00223b0c43728758
MD5 24ddfa0eed0d24e95a2e9b286131737c
BLAKE2b-256 05fbc762bbd9742e1146f0613b7b3d53bd647ab0fa56f025c06b707fe79cd0aa

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 05f132108ca9be598d4824a03cfa7746f1072ce556823608b26d4f4bb7ab599e
MD5 6f229472cc19ab22eb08ab6a1132d685
BLAKE2b-256 3431491a15f6530d7c02a13b39f161631148301e414916855e80996aad265502

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 7f5aefb043a076fb09ca78d00e21a4f4f74b11c747669dc56e268c8bf9972d10
MD5 1ca130c0a9eab805333453770282fb07
BLAKE2b-256 af22dfb4e9811b541caf0a90831cbf0332736b4a9ad41636c347fbbfa0a3c183

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 c88d3e406832ff19af1899e23a0a411f6f2e7a116e4e6f0e07572b01dea5888e
MD5 418706b589f843aa8bc520165a3a88ed
BLAKE2b-256 66b4debbed1fa64f62a8bd010d98bcc53281a7531d08e5ece43695a08d0314b9

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 fa984c17599515188e783d8eadeaafb4bb440e99e96bfbf2ace6a60ff31ddc48
MD5 a664b7881803c069283a065d4326df4c
BLAKE2b-256 a2667ccec9312bee8028024a78db074e30c6679c736c3d9f1247f8304baa0958

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 7997b5f3930f512f47f5529efc3257a7e7407155e9a9f1c80368536d718c658e
MD5 ae41b672a6d3f2815a9da3bce4013412
BLAKE2b-256 992c26bcb629bea48fb2621360e447a9844ff86ba1ee0ba92c4d1689c74ff224

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9773ded91490709881227caa1812e55ed42766c964efd301702af33bd58ceb72
MD5 62bd552614617dc9f9619c5adf395957
BLAKE2b-256 ec220d1585b6c629eb727a523e27d4537994c2369a20b20f252ead8a2b416529

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 87a5769a8530efb20da49593bb42a8ede66df67edb9edc8b9980b0fbec0c8297
MD5 dd367eeae12fa1ac56bf98b21e6fafd2
BLAKE2b-256 6db2406f49f521395e291324cc0882f84eaf96661144bd3720361352e13ca7e5

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ff78a4e5362a027cb0c62975cfcf295fb3c6233f652fe6039075b5697ead39e
MD5 488e9dfc6b1d54acf577f0c77d0b297f
BLAKE2b-256 be69d53f78f3c6f99d0d598365cd95f306806474de27a662add392a93e61d85a

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 c8ab8488cc9deb40334b975e0b2daf92fbd98eb28da69cb2605115cc4f60b9f4
MD5 22db4a3058e0978e040197ca45e233d1
BLAKE2b-256 f8354d6e61199535ee0a8996f74861742b8ba0030661b623af35e509b6f2b0c5

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 de81c604a29a0d49b49f9de810ded7d4264ff4da4978bfdfc4b0c63ab963bfff
MD5 510c2dd5a74528a3399853f66cf2408a
BLAKE2b-256 6b2af470a2615a934def9bd74d8c244459f751ee2e76b7cc017e6f2169522732

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Algorithm Hash digest
SHA256 4ff909ae2484e4b3a887d8793c3197372e6fff6f3517239d87d0d60b679dc69e
MD5 c51d992ec64d5534d181d21c081d0866
BLAKE2b-256 960f06d5c4c911b43f648675eb97c80ed916820ba5cc798a4324531f24671979

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 35398b01e2d657fa69f747652a3234f6397d161de14a5adf07ac485c2a32bf4d
MD5 1bc068d6f0fad14203a2661d14173095
BLAKE2b-256 f3dd051ec2754b395c3c991f19da9dfe02afa83d0b33387a106f9f803658a946

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 cfb250e3c8cbb89e2ccaa2890845dbbb6f59b5bc39692cfb48a19749d7dfca59
MD5 1e843881414fc514027148886d37a3eb
BLAKE2b-256 42ab9e08b0053e28b4c51115609de7acc8ccf3e8fcdcaccb5b8a53e9c642c47d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b994695accaa690d0c60c18d684a2262cda8a7d5065b70dc60f1158eb7a2f110
MD5 be80b1a90b3e4f9b97e32f09aced35f8
BLAKE2b-256 75c2324774f540a6bab5fbbd26edb35ff678d959650cdd95d2d7904d8530946b

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d44e5df85502e834f61f4e28c85661f64281da86d7189fc5813b2744b2a11a18
MD5 7f071623cb64e69d5504bc2beed3247c
BLAKE2b-256 2c65d63976440c2575f3861f0233e42ed70fcd26f8a406f3c33f97182ee5aeb9

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 cd1fcc3b39b38dfe932709f362bb328df26102612e52044053f4e475b974ca9d
MD5 d353c5802a121453efd612cfb713da84
BLAKE2b-256 8e049f82a152783ec90e89fd220f4948418bc4e7a38477d879222a81323bea59

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stringzilla-5.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 458.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 08098b9babab886c6fedcf8577dc6fca97a3cb316dfce765805b53df0796abd6
MD5 e0f3cc7a82690718c9afd3223e08f7e1
BLAKE2b-256 2bd7fc6178a144a20db0c6d3d1945d9cb71042f9b44ffcd38ce414f4d6947a83

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: stringzilla-5.0.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 285.2 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 0b58e0dcfb2c135685244458dfef1853936318d7ef1e1f1752665482ff34bd0c
MD5 3fae483f392a0e3e161a57a775d9773d
BLAKE2b-256 913e4beccb17e577c8927fa5b5538fdd58f50c254a449046b3c04e8582ecf76a

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d4a5f8233d695def0595f14d22388095027a41b4115ebb1434370742d4145b82
MD5 0f0602c619090fcddee14c523bec81f2
BLAKE2b-256 c9d01d9d5c42239e94640e8e55f1f00ea20ab71a5a952bf4f4e0d3e4280757c8

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 a3d06112a8026b4be2a1fececa491b41891edfa65f8e0eeb6b854fd2cd5b85e4
MD5 d0d88bdfcfaf06242d975ee38da36000
BLAKE2b-256 02ddaccbe84c404c305898e68f8876dfb0d90168775c2eb383d30d26880d99a9

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 113eac6ba13249cdb81f8178d4fdbd765dbc2f28c2d7cfc967d55bc0379d2ee7
MD5 dce15c45b86b53d0eb0195f7d59fa683
BLAKE2b-256 f7ad5b10b4707f9b76f6f36133acbf43c5fe036645dcbd16c82dac58280cf18f

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 b63c10288eb7f4bb73241661b7dafe78b9fccf5ce87611398d686c96e3ea992e
MD5 052dcc0715a715b5725c5ff9a896d128
BLAKE2b-256 b5debcfed85030db90f5230e8a3a5c390ee522723b8c59f2e5bf44ffc24082a7

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c5a1d9b189eaacdeab700569f5ed3301431bb0e19e10048be888aca2f8273df7
MD5 2404952c556b35c24067d6960cba78b4
BLAKE2b-256 dcfd3c48e2fa811baf8deb4825d3e4846acb1ec703929067c24523adbb494c63

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 3f91984e6f1c584e028089f5d1ea7ac8f2204a2eeb993a90ca5d011d9b922472
MD5 2c84b5241d9dd80682d499b45a62c8e5
BLAKE2b-256 a36b85362e0e29482407e63ecaf58e16caa62f36a2609dea183e38bf8ee4d35d

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 34beff30aa56fd9d6f6938011550553a380c38143ac588bbe36c0fb817ddb07e
MD5 70971b412908847a651199de6e08874b
BLAKE2b-256 03633f5c0e604713c47b5790a691ad5f9c67192f0dd0a1957c905d91371ae12c

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 8aa63085616debccf79d92fc58e9628581a5fa4554a53d0fe71ccdd84c05655a
MD5 0b4f3393154c66272601f7e2617c79b8
BLAKE2b-256 af9352ee234b3b28379e495acfc0dc2096da4fe5cf12cc7d63f314b2b3f099ae

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6162a82f2d11870184ccda59e3aa129eb4a09ff651a9cb25926814424a6b4a0
MD5 8152ec802b26728319d2c8b1b7fe70c7
BLAKE2b-256 da1c6493e2a3becc259a6bbb77eeb606bee8ff6accc22c3b062cc38650f4931b

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 3e804339c8fb3cb46c71f32fd517ff1d3b78352038990b499f704907171fec46
MD5 2f1c948c4ec67c9daa5a5cc6ef30a114
BLAKE2b-256 57ff722a71de5bd9d9a8ffc13653061fd09f1509cc235a09f4613053c97ebfe3

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 f7bb333a5a0a2fa62378df83bc9400d4a45936007e8bc34fcdd6bc86c541c89a
MD5 e0355f9b0edf579321836e67ed476cbb
BLAKE2b-256 8531149d606d760461d64e8079d6273ac0d812890dd53af354f7bafbc5ed37a6

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Algorithm Hash digest
SHA256 ec99159a48279ab1b1082ceef5b84ba3f0f522165d2e7d9b83dba38f6268b580
MD5 771663b92e9e4087daa8d33dfacb7027
BLAKE2b-256 d3daeab1c525867edcafc7b3f6bdc4e79cef2dfb57cd2be26460ea213d1fd5f1

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f2a967443bdfae70728739e95170839b9fe0bb72ffe88687b176f1675ed45674
MD5 4b7aae9c7dd878f7edb271e6c78a7606
BLAKE2b-256 ba9ff66f2e89f126ce7d9aa9b55ed1f169e769aa235e31084bb8d061a1cf9291

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 093bdaf966434312d353bfc7895895f9e63b5eb0d1cc74e23609b723f2a1b28f
MD5 60bcef3d8d323f74aaabf6fd50d2f5cb
BLAKE2b-256 c23580a4ba21a50759527081b6fae7004cc5d059b19a90b19b44d21639144875

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 78a68ba2a9594329c0f9c2e96434553dac88533058f1981d4eddd388dd0c0453
MD5 467dd4f4a2579d4677c58e6f739ebe08
BLAKE2b-256 e17b4097accd5b27ba64526fa5caeb4a9a8b46db1a27f0d698bc3380813ef434

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp311-cp311-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp311-cp311-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0e9fdc005ef3c9d4841aa750e523225536f939a7e5e01d3be5a70487882f6d6d
MD5 1cdb3304edca91ae2d61e2e3f6d4523a
BLAKE2b-256 47c57234d82619d10f4ea6d20ca0b3fb63b96c828a8849bb987f51d19c0f0dbd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: stringzilla-5.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 458.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 64c471971c853cecb39e4f1244a70c2ceeb0644841c74a8dbf67b2a7e78f24da
MD5 41702702a9e17e0654b7620dc9e9509b
BLAKE2b-256 0b64720cac220db769dc1b032b7e7738967c1f19c304cfc27768769d5f1b9412

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: stringzilla-5.0.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 285.2 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 eace10df9d63b0cb6ea9cafdc73ef9833c77af11620a18a7eb8641905dfd622a
MD5 73ba080b5f9ad223682c271599aaec09
BLAKE2b-256 d302c3100bfdf4f66bf55bd9e605c62ed89147bd74298259f71d06d217c4a2a9

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8a3f866ad746117d89eac7cc1b00d7ccd5953691f3c17fc7fa09551d694b3e19
MD5 2baa3ae7811dbcba6aebe986de8af9ec
BLAKE2b-256 9ec8e868e5134318b14c3e95218be2db988aae6b19c642caae3f231b63d2e6fe

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 53628ee97f5ccba620a198a7c6e59eabaf2dbd81c6f19fce215716b5105a05aa
MD5 af2965a26b7fe30e0e44289e65f520e1
BLAKE2b-256 11336ae73a15848d7c4b0e7b0bb90540c4fc75a9e5b48550c1f9066bdb02a8d8

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 cfaf3e29cf0193140ba06c9d9b565b2bf11bec785cbead1539fcd77e4e4a995e
MD5 43a489b241c6ca557fd2639b32e52d46
BLAKE2b-256 3f7c7eaead96b66352de29b1ef71ecfe66f82fe7018e966fbbacb2f3ff97b862

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 5e6aa47b30b538449905fa7212208339eb3b0d34a71033882f64efbf02b86cfd
MD5 ea43d6fb59ab735005e11d125c332aa8
BLAKE2b-256 82e398fef1b51f061e8c2554019bf1b2abbf11f20999e3a2e8ea5fa33508de18

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0bdf9b7fe51f350cbac0de5ffb7db16e213fb2460b0991c1e935d25c5b02b10a
MD5 ee11ae0b2190bf808b72005cf115418a
BLAKE2b-256 59c0fb7be87074f97f4223982fb8e2d31c1539954f1d9e4abb79a368261faffb

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 9b2bd9632c6be529c8dfa8ca15214379f86f7ca1873b83ff1abffc5d87bc5296
MD5 cfe892dc20621bedd3525c04907d1830
BLAKE2b-256 4abea22d1b423e6d2300a4b8c50bad8a77535e50397832bb3b70886b39197b00

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5ad71c28989fca3560713cf992ddf84f7487e59fe32b495499aa3a98baa32b2a
MD5 6d1d64529f5b2a46ad521a9991cf500c
BLAKE2b-256 3b3563d9c325a8c585890b6493e522a9a206c7f8ab0ec07575e0565aa14cf1e1

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 a983155655e3cc333ef7bbce39c6a905b42cfdab6fa3235d2879a2d67e2cfd63
MD5 2b2ef4ce2145ec97ce5555f7184fc945
BLAKE2b-256 44d238bcaf6c631e57e6e9f7fa3667fe63c496c1e3a6813c8540994e42034bac

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b73f7a05948186d961eb806388296033a8d63782c9e2d4c4a95661daca1b60a0
MD5 2bdb277b379c03ba613b3b3b3def7832
BLAKE2b-256 1aacec1322ac3e67b0095a2c9cdc2dab92c784863c8c2dadbb7c6ffb0d81b4d6

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 66335141809cf114cfe775547a0c495e244c42d2254d2c93678c3a748ade21ea
MD5 73aaf659382906a0567190c56c26ab83
BLAKE2b-256 188be16e274f8efd42fac6620402a4f56ec5bfd5e4d8b879ccdc4a659c5b21f2

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 21bec0ae093c1f4592c3715fae7e64fe301680aae40b05c57a916c830bbeeaa9
MD5 c7e3348caf57d43dd5038601b89296dc
BLAKE2b-256 277abff371abff3ed256eb837d6a4c8b801ca650d9c61b5440a935d9d533e5d8

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Algorithm Hash digest
SHA256 4a81bfa2f06e5f9db04d2349c697ed29f82126d64e8c71ad4effd4768624c25f
MD5 9a8a8e94b9207b70a47fed31f0c3dc1e
BLAKE2b-256 055310aa2878ceeec0186bbc93cbf660257a29c7005ddc5a19a6fd8fe6c8e044

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4f262ace1b28a7449aa02f62909807b3cbca2a59246eedc50cadd62d47651c98
MD5 eb385d1cc70289eecde237adefbfa36f
BLAKE2b-256 484374f5fc159e80d9212e57b90b49c9bb451b50bd2652fb216f9d2980b48870

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 9bc391b468f553d551cd8ed69549088a3da792f92345f073db239b7db15ba1df
MD5 e7b15fd9ed71a1f3e492b892f41d101c
BLAKE2b-256 20aa815141de632d344ad9091a40da9f5c374f472ca12aacdade59319861c95b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9743581a078ba0d9028b12c5738cd4dc456b4e8a5088def7995c9bb99fbab11e
MD5 0bf8e287f18d224f8dfae771b3553bf3
BLAKE2b-256 8188d19c044b25e29826e488faa68d188e984654a68dde968f63a3f3885fc460

See more details on using hashes here.

File details

Details for the file stringzilla-5.0.0-cp310-cp310-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for stringzilla-5.0.0-cp310-cp310-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 8e59819eb2f221c99a339c3630c0453448fa520604bc974caed55f78be658c4c
MD5 4b4bd5ecf39c3a23028209eeaeac614c
BLAKE2b-256 c7f14dc68529300f8ceec0a5e32f0bbfcb18b5cbce47c12d8596f1e13554c0f4

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