StringZilla

Up to 100x faster strings for C, C++, CUDA, Python, Rust, Swift, JS, & Go, leveraging NEON, AVX2, AVX-512, SVE, GPGPU, & SWAR to accelerate search, hashing, sorting, edit distances, sketches, and memory ops 🦖 (by ashvardanian)

StringZilla Alternatives

Similar projects and alternatives to StringZilla

  1. NumPy

    310 StringZilla VS NumPy

    The fundamental package for scientific computing with Python.

  2. Stream

    Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.

    Stream logo
  3. compiler-explorer

    Run compilers interactively from your web browser and interact with the assembly

  4. JDK

    210 StringZilla VS JDK

    JDK main-line development https://openjdk.org/projects/jdk

  5. coreutils

    upstream mirror (by coreutils)

  6. simdjson

    Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks

  7. abseil-cpp

    Abseil Common Libraries (C++)

  8. pylance-release

    Documentation and issues for Pylance

  9. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  10. go-sqlite3

    Go bindings to SQLite using wazero (by ncruces)

  11. rust-memchr

    Optimized string search routines for Rust.

  12. USearch

    Fast Open-Source Search & Clustering engine × for Vectors & Arbitrary Objects × in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram 🔍

  13. rebar

    A biased barometer for gauging the relative speed of some regex engines on a curated set of tasks.

  14. rewrite

    Automated mass refactoring of source code.

  15. aho-corasick

    A fast implementation of Aho-Corasick in Rust.

  16. sml

    25 StringZilla VS sml

    C++14 State Machine library

  17. SimSIMD

    Up to 200x Faster Dot Products & Similarity Metrics — for Python, Rust, C, JS, and Swift, supporting f64, f32, f16 real & complex, i8, and bit vectors using SIMD for both AVX2, AVX-512, NEON, SVE, & SVE2 📐

  18. pocorgtfo

    a "Proof of Concept or GTFO" mirror with an extensive index with also whole issues or individual articles as clean PDFs.

  19. less_slow.cpp

    Playing around "Less Slow" coding practices in C++ 20, C, CUDA, PTX, & Assembly, from numerics & SIMD to coroutines, ranges, exception handling, networking and user-space IO

  20. libdivide

    Official git repository for libdivide: optimized integer division

  21. Simd

    1 StringZilla VS Simd

    C++ image processing and machine learning library with using of SIMD: SSE, AVX, AVX-512, AMX for x86/x64, NEON for ARM. (by ermig1979)

  22. simde

    Implementations of SIMD instruction sets for systems which don't natively support them.

  23. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better StringZilla alternative or higher similarity.

StringZilla discussion

StringZilla reviews and mentions

Posts with mentions or reviews of StringZilla. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-09-19.
  • StringZilla 4.2: Arm NEON+SHA and Goldmont support
    1 project | news.ycombinator.com | 16 Oct 2025
  • Processing Strings 109x Faster Than Nvidia on H100
    4 projects | news.ycombinator.com | 19 Sep 2025
    Thanks! You are likely right! It took a lot of time to make sure that all 6 of ISA-specific versions of StringZilla (https://github.com/ashvardanian/StringZilla/blob/main/includ...) return the same output for both one-shot and incremental construction, and I’m not sure if it was a priority for other projects :)
  • Counting Words at SIMD Speed
    2 projects | news.ycombinator.com | 16 Aug 2025
    You can avoid hard-coding the whitespace symbols and have a generic byte-set search kernel:

     - For AVX512VBMI-capable CPUs: https://github.com/ashvardanian/StringZilla/blob/2f4b1386ca2ed3c4178c1e4f467a2e78a911f3b2/include/stringzilla/stringzilla.h#L5657-L5769
  • Faster substring search with SIMD in Zig
    5 projects | news.ycombinator.com | 11 Aug 2025
    I like that more people are getting involved with SIMD, and there have been several posts lately on both memmem-like and memcpy-like operations implemented in SIMD in different programming languages.

    In most cases, though, these still focus on AVX/NEON instructions from over 10 years ago, rather than newer and more powerful AVX-512 variations, SVE & SVE2, or RVV.

    These newer ISAs can noticeably change how one would implement a state-of-the-art substring search or copy/move operation. In my projects, such as StringZilla, I often use mask K registers (https://github.com/ashvardanian/StringZilla/blob/2f4b1386ca2...) and an input-dependent mix of temporal and non-temporal loads and stores (https://github.com/ashvardanian/StringZilla/blob/2f4b1386ca2...).

    In typical cases, the difference between the suggested SIMD kernels and the state-of-the-art can be as significant as 50% in throughput. As SIMD becomes more widespread, it would be beneficial to focus more on delivering software and bundling binaries, rather than just the kernels.

  • Show HN: CXXStateTree – A modern C++ library for hierarchical state machines
    10 projects | news.ycombinator.com | 6 Jul 2025
    You'll see a fairly even split amongst S-tier, "possibly headed for standardization" level libraries. I'd say there's a skew for `#ifndef` in projects that are more "aspires to the standard library" and for `#pragma once` in projects that are more focused on like a very specific vertical.

    `#pragma once` seems to be far preferred for internal code, there's an argument for being strictly conforming if you're putting out a library. I've converted stuff to `#ifndef` before sharing it, but I think heavy C++ people usually type `#pragma once` in the privacy of their own little repository.

    - `spdlog`: `#pragma once` https://github.com/gabime/spdlog/blob/v1.x/include/spdlog/as...

    - `absl`: `#ifndef` https://github.com/abseil/abseil-cpp/blob/master/absl/base/a...

    - `zpp_bits`: `#ifndef` https://github.com/eyalz800/zpp_bits/blob/main/zpp_bits.h

    - `stringzilla` `#ifndef` https://github.com/ashvardanian/StringZilla/blob/main/includ...

  • SIMD-friendly algorithms for substring searching
    6 projects | news.ycombinator.com | 14 Jun 2025
    Hi Austin! Was just checking your blog and the vowels detection post (< https://austinhenley.com/blog/vowels.html>).

    What exactly do you mean by “use SIMD directly without calling out to another language”?

    In some way Assembly will probably anyways be another language… but that’s a technicality.

    I guess the spectrum of SIMD-related work in relation to Python is quite broad. There are projects like PeachPy, to help one write x86 Asm in Python, new Python’esque languages like Mojo, or SIMD libraries with thin CPython bindings. Do you mean one of those?

    PS: I’m in the last camp. And in case you are focused on ASCII, for vowel search, have you tried StringZilla’s `find_first_of` (< https://github.com/ashvardanian/StringZilla/blob/960967d78c7...>)? I think it should perform well ;)

  • Strings Just Got Faster
    4 projects | news.ycombinator.com | 2 May 2025
    At this point, it doesn’t provide much novel functionality, but it should be faster than the standard libraries of most (or maybe all) programming languages.

    https://github.com/ashvardanian/StringZilla

  • Show HN: Less Slow C++
    20 projects | news.ycombinator.com | 18 Apr 2025
    I wish I'd had a short answer :)

    For years, I've had a hope to build it in the form of an open-core project: open-source SotA solutions for Storage, Compute, and AI Modeling built bottom up. You can imagine the financial & time burden of building something like that with all the weird optimizations and coding practices listed above.

    A few years in, with millions spent out of my pocket, without any venture support or revenue, I've decided to change gears and focus on a few niche workloads until some of the Unum tools become industry standards for something. USearch was precisely that, a toy Vector Search engine that would still, hopefully, be 10x better than alternatives, in one way or another: <https://www.unum.cloud/blog/2023-11-07-scaling-vector-search...>.

    Now, ScyllaDB (through Rust SDK) and YugaByte (through C++ SDK) are the most recent DBMSs to announce features built on USearch, joining the ranks of many other tech products leveraging some of those optimizations, and I was playing around with different open-source growth & governance ideas last year, looking for way to organize more collaborative environment among our upstream users, rather than competitive — no major releases, just occasional patches here and there.

    It was an interesting period, but now I'm again deep in the "CUDA-GDB" land, and the next major release to come is precisely around Full-Text Search in StringZilla <https://github.com/ashvardanian/stringzilla>, and will be integrated into both USearch <https://github.com/unum-cloud/usearch> and somewhere else ;)

  • Dividing unsigned 8-bit numbers
    4 projects | news.ycombinator.com | 21 Dec 2024
    64 KB is a pretty significant budget for such a small operation. I've had a variant that uses 768 bytes with some extra logic, but will deprecate that kernel soon.

    https://github.com/ashvardanian/StringZilla/blob/0d47be212c5...

  • I'm Not a Fan of Strlcpy(3)
    2 projects | news.ycombinator.com | 15 Jul 2024
    Aside from the NULL-termination requirements there is arguably another big design issue with libc strings. I believe the interfaces that may allocate memory - must give you an opportunity to override the allocator. Aside from the SIMD implementation quality and throughput on Arm, that was one of the key reasons to start a new library: https://github.com/ashvardanian/StringZilla/blob/91d0a1a02fa...

    Also not a huge fan of locale controls and wchar APIs :)

  • A note from our sponsor - SaaSHub
    www.saashub.com | 24 Dec 2025
    SaaSHub helps you find the best software and product alternatives Learn more →

Stats

Basic StringZilla repo stats
26
3,270
9.9
7 days ago

Sponsored
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io

Did you know that C is
the 6th most popular programming language
based on number of references?