{"repo":"ashvardanian/StringWars","free":true,"listed":false,"github":"https://github.com/ashvardanian/StringWars","clone":"git clone https://github.com/ashvardanian/StringWars.git","description":"Comparing performance-oriented string-processing libraries for substring search, multi-pattern matching, hashing, edit-distances, sketching, and sorting across CPUs and GPUs in Rust 🦀 and Python 🐍","language":"Rust","stars":157,"topics":["benchmark","libc","memchr","string","string-search","strstr","substring-search","bioinformatics","database","dataframe"],"license":null,"category":"databases-storage","readme_excerpt":"StringWars Text Processing on CPUs & GPUs, in Python & Rust There are many great libraries for string processing! Mostly, of course, written in Assembly, C, and C++, but some in Rust as well. Where Rust decimates C and C++, is the simplicity of dependency management, making it great for benchmarking \"Systems Software\" and lining up apples-to-apples across native crates and their Python bindings. So, to accelerate the development of the StringZilla C, C++, and CUDA libraries (with Rust and Python bindings), I've created this repository to compare it against some of my & communities most beloved Rust projects, like: - memchr for substring search. - rapidfuzz and bio for edit distances and alignments. - aHash , xxhash-rust , foldhash , and blake3 for hashing. - aho corasick and regex for multi-pattern search. - arrow and polars for collections and sorting. - icu for Unicode processing. - ring and sodiumoxide for encryption. Of course, the functionality of the projects is different, as are the APIs and the usage patterns. So, I focus on the workloads for which StringZilla was designed and compare the throughput of the core operations. Notably, I also favor modern hardware with support for a wider range SIMD instructions, like mask-equipped AVX-512 on x86 starting from the 2015 Intel Skylake-X CPUs or more recent predicated variable-length SVE and SVE2 on Arm, that aren't often supported by existing libraries and tooling. [!IMPORTANT] The numbers in the tables below are provided f","default_branch":null,"files":null,"tree":[],"storefront":"/r/ashvardanian","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ashvardanian/StringWars/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}