stringzilla
Search, hash, sort, and process strings faster via SWAR and SIMD
What it is and what it does
StringZilla is a compiled C++ library that accelerates string operations by exploiting SIMD (vector instructions) and SWAR (bit-level parallelism) to process multiple bytes or characters in a single CPU cycle. It exposes fast implementations of substring search, Unicode case-folding, edit distances (Levenshtein, Needleman-Wunsch), sorting, segmentation, and hashing through a Python interface with zero runtime dependencies.
The library targets data engineers, bioinformaticians, and systems developers who process large text datasets or need to optimize string-heavy workloads. It claims substantial speedups over standard libraries (LibC, ICU, NumPy) and GPU libraries on common operations. The fact sheet shows it supports Python 3.10 through 3.14 on CPython and PyPy, with precompiled wheels for x86, ARM, PowerPC, RISC-V, and other architectures.
Use it for:
- Parse and search large datasets like CommonCrawl or RedPajama where substring matching is a bottleneck.
- Compute pairwise edit distances on batches of DNA or protein sequences for bioinformatics pipelines.
- Accelerate database operations like LIKE, ORDER BY, and GROUP BY on text columns.
- Implement fuzzy matching or deduplication in data cleaning workflows.
- Sort or segment large text corpora by line breaks or custom delimiters at scale.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
StringZilla provides SIMD and SWAR-accelerated string operations including substring search, hashing, edit distances, sorting, and segmentation for Python, with no runtime dependencies.
Yes, if you process large text datasets or need fast string operations. The library is actively maintained, has no runtime dependencies, and offers substantial claimed speedups over standard libraries. The medium install friction (compiled wheels) is manageable for common platforms. No known vulnerabilities. Install only if your Python version is 3.10 or later.
Install
stringzilla on PyPI
pip
pip install stringzillauv
uv add stringzillapoetry
poetry add stringzillaInstalling stringzilla
Before you install
Medium install friction due to compiled wheels across many architectures (x86, ARM, PowerPC, RISC-V, s390x). Actively maintained with recent releases; no runtime dependencies simplifies deployment.
License in practice
Apache-2.0 is permissive; you may use, modify, and distribute StringZilla freely in commercial and private projects, provided you include a copy of the license and any modifications.
Quickstart
pip install stringzilla
import stringzilla as sz
result = sz.find('hello world', 'world')
Requires Python 3.10 or later; compiled wheels available for common platforms, but installation on unsupported architectures may require building from source.
Verify before relying
- Whether the GPU performance claims (H100 benchmarks) apply to standard PyPI installations or require separate CUDA builds.
- Whether PyPy support is fully tested and production-ready, or remains experimental.
- Whether the library is suitable for real-time or latency-critical workloads given the Python-to-C boundary crossing overhead.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,833,927/month — #2,871 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: stringzilla-5.1.2-cp310-cp310-macosx_11_0_arm64.whl; stringzilla-5.1.2-cp310-cp310-macosx_11_0_x86_64.whl; stringzilla-5.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; stringzilla-5.1.2-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl; stringzilla-5.1.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl; stringzilla-5.1.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl; stringzilla-5.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; stringzilla-5.1.2-cp310-cp310-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl; stringzilla-5.1.2-cp310-cp310-musllinux_1_2_aarch64.whl; stringzilla-5.1.2-cp310-cp310-musllinux_1_2_armv7l.whl; stringzilla-5.1.2-cp310-cp310-musllinux_1_2_ppc64le.whl; stringzilla-5.1.2-cp310-cp310-musllinux_1_2_riscv64.whl; stringzilla-5.1.2-cp310-cp310-musllinux_1_2_s390x.whl; stringzilla-5.1.2-cp310-cp310-musllinux_1_2_x86_64.whl; stringzilla-5.1.2-cp310-cp310-win32.whl; stringzilla-5.1.2-cp310-cp310-win_amd64.whl; stringzilla-5.1.2-cp311-cp311-macosx_11_0_arm64.whl; stringzilla-5.1.2-cp311-cp311-macosx_11_0_x86_64.whl; stringzilla-5.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; stringzilla-5.1.2-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
strsimpyImplements a dozen string similarity and…
permissive · top 15,000 on PyPI
polylevenPolyleven computes Levenshtein distance between…
unclear · top 5,000 on PyPI
fuzzysearchFinds approximate substring matches in text or…
permissive · top 15,000 on PyPI
LevenshteinLevenshtein computes string edit distances,…
copyleft · top 1,000 on PyPI
pysimdjsonPython bindings for the simdjson…
unclear · top 5,000 on PyPI
simsimdSimSIMD provides SIMD-optimized kernels for…
permissive · top 5,000 on PyPI
python-LevenshteinComputes Levenshtein edit distance, string…
copyleft · top 5,000 on PyPI
pylcsComputes longest common subsequence, longest…
permissive · top 15,000 on PyPI
pfzyProvides fuzzy string matching with match…
permissive · top 5,000 on PyPI
amplyAmply parses AMPL data syntax (sets and…
copyleft · top 15,000 on PyPI