Skip to content

Commit b9aa985

Browse files
committed
Docs: Badges, CLI, & inconsistencies
1 parent f621419 commit b9aa985

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,22 @@ Strings are the first fundamental data type every programming language implement
66
That's why most languages lean on the C standard library (libc) for their string operations, which, despite its name, ships its hottest code in hand-tuned assembly.
77
It does exploit SIMD, but it isn't perfect.
88
1️⃣ Even on ubiquitous hardware - over a billion 64-bit ARM CPUs - routines such as `strstr` and `memmem` top out at roughly one-third of available throughput.
9-
2️⃣ SIMD coverage is uneven: fast forward scans don't guarantee speedy reverse searches.
9+
2️⃣ SIMD coverage is uneven: fast forward scans don't guarantee speedy reverse searches, hashing and case-mapping is not even part of the standard.
1010
3️⃣ Many higher-level languages can't rely on libc at all because their strings aren't NUL-terminated - or may even contain embedded zeroes.
1111
That's why StringZilla exists: predictable, high performance on every modern platform, OS, and programming language.
1212

1313
[![StringZilla Python installs](https://static.pepy.tech/personalized-badge/stringzilla?period=total&units=abbreviation&left_color=black&right_color=blue&left_text=StringZilla%20Python%20installs)](https://github.com/ashvardanian/stringzilla)
1414
[![StringZilla Rust installs](https://img.shields.io/crates/d/stringzilla?logo=rust&label=Rust%20installs)](https://crates.io/crates/stringzilla)
15+
![StringZilla code size](https://img.shields.io/github/languages/code-size/ashvardanian/stringzilla)
16+
17+
<!-- Those badges often stay in stale state - greyed out. Consider enabling them later.
1518
[![Ubuntu status](https://img.shields.io/github/checks-status/ashvardanian/StringZilla/main?checkName=Linux%20CI&label=Ubuntu)](https://github.com/ashvardanian/StringZilla/actions/workflows/release.yml)
1619
[![Windows status](https://img.shields.io/github/checks-status/ashvardanian/StringZilla/main?checkName=Windows%20CI&label=Windows)](https://github.com/ashvardanian/StringZilla/actions/workflows/release.yml)
1720
[![macOS status](https://img.shields.io/github/checks-status/ashvardanian/StringZilla/main?checkName=macOS%20CI&label=macOS)](https://github.com/ashvardanian/StringZilla/actions/workflows/release.yml)
18-
![StringZilla code size](https://img.shields.io/github/languages/code-size/ashvardanian/stringzilla)
21+
-->
1922

20-
StringZilla is the GodZilla of string libraries, using [SIMD][faq-simd] and [SWAR][faq-swar] to accelerate string operations on modern CPUs and GPUs.
21-
It delivers up to __10x higher CPU throughput in C, C++, and Python__ and can be __100x faster than existing GPU kernels__, covering a broad range of functionality.
23+
StringZilla is the GodZilla of string libraries, using [SIMD][faq-simd] and [SWAR][faq-swar] to accelerate binary and UTF-8 string operations on modern CPUs and GPUs.
24+
It delivers up to __10x higher CPU throughput in C, C++, Rust, Python__, and other languages, and can be __100x faster than existing GPU kernels__, covering a broad range of functionality.
2225
It __accelerates exact and fuzzy string matching, hashing, edit distance computations, sorting, provides allocation-free lazily-evaluated smart-iterators, and even random-string generators__.
2326

2427
[faq-simd]: https://en.wikipedia.org/wiki/Single_instruction,_multiple_data
@@ -32,13 +35,13 @@ It __accelerates exact and fuzzy string matching, hashing, edit distance computa
3235
- 🦫 __[Go](#quick-start-golang):__ Use the `StringZilla` cGo module
3336
- 🍎 __[Swift](#quick-start-swift):__ Use the `String+StringZilla` extension
3437
- 🟨 __[JavaScript](#quick-start-javascript):__ Use the `StringZilla` library
35-
- 🐚 __[Shell][faq-shell]__: Accelerate common CLI tools with `sz_` prefix
38+
- 🐚 __[Shell][faq-shell]__: Accelerate common CLI tools with `sz-` prefix
3639
- 📚 Researcher? Jump to [Algorithms & Design Decisions](#algorithms--design-decisions)
3740
- 💡 Thinking to contribute? Look for ["good first issues"][first-issues]
3841
- 🤝 And check the [guide](https://github.com/ashvardanian/StringZilla/blob/main/CONTRIBUTING.md) to set up the environment
3942
- Want more bindings or features? Let [me](https://github.com/ashvardanian) know!
4043

41-
[faq-shell]: https://github.com/ashvardanian/StringZilla/blob/main/cli/README.md
44+
[faq-shell]: https://github.com/ashvardanian/StringZilla-CLI
4245
[first-issues]: https://github.com/ashvardanian/StringZilla/issues
4346

4447
__Who is this for?__
@@ -1910,7 +1913,7 @@ Install the Node.js package and use zero-copy `Buffer` APIs.
19101913

19111914
```bash
19121915
npm install stringzilla
1913-
node -p "require('stringzilla').capabilities" # for CommonJS
1916+
node -p "require('stringzilla').default.capabilities" # for CommonJS
19141917
node -e "import('stringzilla').then(m=>console.log(m.default.capabilities)).catch(console.error)" # for ESM
19151918
```
19161919

@@ -2080,7 +2083,7 @@ import StringZilla
20802083
let digest = "Hello, world!".sha256() // returns [UInt8] (32 bytes)
20812084

20822085
// Incremental SHA-256
2083-
var hasher = StringZillaSha256Hasher()
2086+
var hasher = StringZillaSha256()
20842087
hasher.update("Hello, ")
20852088
hasher.update("world!")
20862089
let digestBytes = hasher.digest() // [UInt8] (32 bytes)

0 commit comments

Comments
 (0)