StringZilla

Up to 10x faster strings for C, C++, Python, Rust, Swift & Go, leveraging NEON, AVX2, AVX-512, SVE, & SWAR to accelerate search, hashing, sort, edit distances, and memory ops πŸ¦– (by ashvardanian)

StringZilla Alternatives

Similar projects and alternatives to StringZilla

  1. NumPy

    301 StringZilla VS NumPy

    The fundamental package for scientific computing with Python.

  2. 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
  3. compiler-explorer

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

  4. JDK

    205 StringZilla VS JDK

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

  5. coreutils

    upstream mirror (by coreutils)

  6. rust-playground

    The Rust Playground

  7. simdjson

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

  8. rebar

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

  9. SaaSHub

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

    SaaSHub logo
  10. usearch

    Fast Open-Source Search & Clustering engine Γ— for Vectors & πŸ”œ Strings Γ— in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram πŸ”

  11. aho-corasick

    A fast implementation of Aho-Corasick in Rust.

  12. is-even

    27 StringZilla VS is-even

    Discontinued I created this in 2014, when I was learning how to program. (by i-voted-for-trump)

  13. hyperscan

    High-performance regular expression matching library

  14. cupy

    25 StringZilla VS cupy

    NumPy & SciPy for GPU

  15. 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 πŸ“

  16. lexy

    C++ parsing DSL

  17. sleef

    SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT

  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. libsimdpp

    Portable header-only C++ low level SIMD library

  22. 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

Log in or Post with

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-05-02.
  • 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 :)

  • Wc2: Investigates optimizing 'wc', the Unix word count program
    15 projects | news.ycombinator.com | 20 Jun 2024
    In the context of State Machines and Automatas - Intel HyperScan might be a better reference point. But the idea is the same. With a trivial PoC using Python wrappers over SIMD libraries one can get a 3x boost over the native `wc` CLI on a modern CPU, memory-mapping a very average SSD: https://github.com/ashvardanian/StringZilla/tree/main/cli
  • NumPy 2.0.0
    13 projects | news.ycombinator.com | 16 Jun 2024
    stringzilla[1] has 10x perf on some string operations - maybe they don't suck, but there's definitely room for improvement

    [1] - https://github.com/ashvardanian/StringZilla?tab=readme-ov-fi...

  • Measuring energy usage: regular code vs. SIMD code
    1 project | news.ycombinator.com | 19 Feb 2024
    The 3.5x energy-efficiency gap between serial and SIMD code becomes even larger when

    A. you do byte-level processing instead of float words;

    B. you use embedded, IoT, and other low-energy devices.

    A few years ago I've compared Nvidia Jetson Xavier (long before the Orin release), Intel-based MacBook Pro with Core i9, and AVX-512 capable CPUs on substring search benchmarks.

    On Xavier one can quite easily disable/enable cores and reconfigure power usage. At peak I got to 4.2 GB/J which was an 8.3x improvement in inefficiency over LibC in substring search operations. The comparison table is still available in the older README: https://github.com/ashvardanian/StringZilla/tree/v2.0.2?tab=...

  • Show HN: StringZilla v3 with C++, Rust, and Swift bindings, and AVX-512 and NEON
    1 project | news.ycombinator.com | 7 Feb 2024
  • How fast is rolling Karp-Rabin hashing?
    1 project | news.ycombinator.com | 4 Feb 2024
    This is extremely timely! I was working on SIMD variants for collision-resistant rolling-hash variants in the last few weeks for the v3 release of the StringZilla library [1].

    I have tried several 4-way and 8-way parallel variants using AVX-512 DQ instructions for 64-bit integer multiplications [2] as well as using integer FMA instructions on Arm NEON with 32-bit multiplications [3]. The latter needs a better mixing approach to be collision-resistant.

    So far I couldn't exceed 1 GB/s/core [4], so more research is needed. If you have any ideas - I am all ears!

    [1]: https://github.com/ashvardanian/StringZilla/blob/bc1869a8529...

    [2]: https://github.com/ashvardanian/StringZilla/blob/bc1869a8529...

    [3]: https://github.com/ashvardanian/StringZilla/blob/bc1869a8529...

    [4]: https://github.com/ashvardanian/StringZilla/tree/main-dev?ta...

  • 4B If Statements
    5 projects | news.ycombinator.com | 27 Dec 2023
    Jokes aside, lookup tables are a common technique to avoid costly operations. I was recently implementing one to avoid integer division. In my case I knew that the nominator and denominator were 8 bit unsigned integers, so I've replaced the division with 2 table lookups and 6 shifts and arithmetic operations [1]. The well known `libdivide` [2] does that for arbitrary 16, 32, and 64 bit integers, and it has precomputed magic numbers and lookup tables for all 16-bit integers in the same repo.

    [1]: https://github.com/ashvardanian/StringZilla/blob/9f6ca3c6d3c...

  • A note from our sponsor - InfluxDB
    www.influxdata.com | 13 May 2025
    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. Learn more β†’

Stats

Basic StringZilla repo stats
20
2,555
9.1
2 days ago

Sponsored
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.
www.influxdata.com