Keep full control over the data you collect and tailor the form builder’s entire look and feel to your users’ needs. SurveyJS works with React, Angular, Vue 3, and is compatible with any backend or auth system. Learn more. Learn more →
Top 23 String Open-Source Projects
-
Project mention: Material Theme has been pulled from VS Code's marketplace | news.ycombinator.com | 2025-02-25
-
SurveyJS
JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor. Keep full control over the data you collect and tailor the form builder’s entire look and feel to your users’ needs. SurveyJS works with React, Angular, Vue 3, and is compatible with any backend or auth system. Learn more.
-
-
-
-
-
-
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 🦖
Project mention: Show HN: CXXStateTree – A modern C++ library for hierarchical state machines | news.ycombinator.com | 2025-07-06You'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...
-
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.
-
goutil
💪 Helper Utils(800+): int, byte, string, array/slice, map, struct, dump, convert/format, error, web/http, cli/flag, OS/ENV, filesystem, system, test/assert, time and more. Go 常用的工具函数:数字,字符串,数组,Map,结构体,反射,文本,文件,错误,时间日期,特殊处理,格式化,常用信息获取等等
-
-
-
string
Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way (by symfony)
-
-
Obfuscate
Guaranteed compile-time string literal obfuscation header-only library for C++14 (by adamyaxley)
-
Project mention: SIMD-friendly algorithms for substring searching | news.ycombinator.com | 2025-06-14
The "AVX2 (generic)" approach is roughly what ripgrep uses (via Rust's `regex` crate) to accelerate most searches. Even something like `\w+\s+Sherlock\s+\w+` will benefit since ripgrep will pluck `Sherlock` out of the regex and search that.
The actual implementation is here: https://github.com/BurntSushi/memchr?tab=readme-ov-file#algo...
The main difference with the algorithm presented here is that instead of always using the first and last bytes of the needle, a heuristic is used to try to pick two bytes that occur less frequently according to a background frequency distribution.
It ends up being quite a bit faster than just plain Two-Way or even GNU libc's implementation of `memmem`. From the root of the `memchr` repository:
$ rebar rank benchmarks/record/x86_64/2023-12-29.csv -e '^rust/memchr/memmem/(oneshot|prebuilt|twoway)' -e '^libc/memmem/oneshot'
-
-
python-string-similarity
A library implementing different string similarity and distance measures using Python.
-
mlib
Library of generic and type safe containers in pure C language (C99 or C11) for a wide collection of container (comparable to the C++ STL).
-
lyricist
🌎 The missing I18N/L10N (internationalization/localization) multiplatform library for Compose Multiplatform!
-
On the note of small strings, Compact String[1] was i believed released after this article and has a nifty trick. Where Smol and Smart can fit 22 and 23 bytes, CompactStr can fit 24! Which is kinda nutty imo, that's the full size of the normal String on the stack.. but packed with actual string data.
There's a nice explanation on their readme[2]. Love tricks like this.
[1]: https://github.com/ParkMyCar/compact_str
-
url-pattern
easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.
-
-
-
-
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.
String discussion
String related posts
-
SIMD-friendly algorithms for substring searching
-
Tell HN: I forked and republished a popular, abandoned Python library
-
How to Encrypt JavaScript Code for Web Security
-
Small Strings in Rust: smolstr vs. smartstring
-
Go structs are copied on assignment (and other things about Go I'd missed)
-
Tolower() with AVX-512
-
Using SIMD for Parallel Processing in Rust
-
A note from our sponsor - SurveyJS
surveyjs.io | 18 Jul 2025
Index
What are some of the best open-source String projects? This list will help you:
# | Project | Stars |
---|---|---|
1 | javascript-obfuscator | 14,917 |
2 | query-string | 6,866 |
3 | URI.js | 6,256 |
4 | voca | 3,616 |
5 | he | 3,508 |
6 | underscore.string | 3,370 |
7 | StringZilla | 2,617 |
8 | goutil | 2,224 |
9 | sprintf.js | 2,126 |
10 | string.js | 1,810 |
11 | string | 1,767 |
12 | xorstr | 1,306 |
13 | Obfuscate | 1,186 |
14 | rust-memchr | 1,153 |
15 | sttr | 1,141 |
16 | python-string-similarity | 1,008 |
17 | mlib | 1,009 |
18 | lyricist | 752 |
19 | compact_str | 746 |
20 | url-pattern | 587 |
21 | Portable ASCII | 563 |
22 | jsurl | 552 |
23 | tiny-utf8 | 551 |