77 Repositories
Rust string-matching Libraries
Pure-Rust implementation of Fast Static Symbol Tables string compression
fsst-rs A pure-Rust, zero-dependency implementation of the FSST string compression algorithm. FSST is a string compression algorithm meant for use in
replaces fixed-sized string prefixes & whole sections in binaries for fast, debuggable, reproducible builds
Replacing fixed-sized string prefixes in binaries to refix them to their build context Here's the long story about what refix does and why you'd want
memchr vs stringzilla - up to 7x throughput difference between two SIMD-accelerated substring search libraries in Rust
memchr vs stringzilla Rust Substring Search Benchmarks Substring search is one of the most common operations in text processing, and one of the slowes
⚡️Highly efficient data and string formatting library for Rust.
⚡️Highly efficient data and string formatting library for Rust. 🔎 Overview Pad and format string slices and generic vectors efficiently with minimal
Rust based magic-string with source map chains support
enhanced-magic-string Rust implementation of https://www.npmjs.com/package/magic-string with original sourcemap chain support. license. This project i
String processing with file/line/col information and the regular rust `str` API
Simple span handling for str and &[u8] This crate exposes some of the methods that exist on str or bstr. If you are missing any you need, please open
xyz is a chat platform where people sign up, play a matching game, and say goodbye
xyz is an asynchronous chat and web service What you need Docker Desktop 🐳 Cargo (Rust package manager) 📦 Clone our project Follow the steps below t
String OS from User Space!
... from User Space! Introduction Did you read about the amazing String OS? Did you find yourself longing for its amazingly simple and elegant API? Ar
Idiomatic Rust implementations for various Windows string types (like UNICODE_STRING)
nt-string by Colin Finck [email protected] Provides idiomatic Rust implementations for various Windows string types: NtUnicodeString (with NtUnicode
Transform tagged Markdown string to HTML during build time.
tagged-md Transform tagged Markdown string to HTML! Check out the examples! Motivation Have you ever written HTML strings in your JavaScript code? It'
`grep` but with PEG patterns. Define grammars (e.g. `digit`), functions for matching. No more regex syntax!
PEG peggrep Example file demo_file: THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE. this line is the 1st lower case line in this file. This Line Ha
Easy-to-use string interner crate for Rust.
🪐 tiny_interner crate. ~300 lines of Rust code that implement string internering for your programming language compiler. Example fn main() { let
Parses a relative time string and returns a `Duration`
humantime_to_duration A Rust crate for parsing human-readable relative time strings and converting them to a Duration. Features Parses a variety of hu
Compact, clone-on-write vector and string.
ecow Compact, clone-on-write vector and string. Types An EcoVec is a reference-counted clone-on-write vector. It takes up two words of space (= 2 usiz
A simpler and 5x faster alternative to HashMap in Rust, which doesn't use hashing and doesn't use heap
At least 5x faster alternative of HashMap, for very small maps. It is also faster than FxHashMap, hashbrown, ArrayMap, and nohash-hasher. The smaller
A special rope, designed to work with any data type that is not String
AnyRope AnyRope is an arbitrary data type rope for Rust, designed for similar operations that a rope would do, but targeted at data types that are not
Immutable strings, in Rust.
Immutable Strings Inspired by the bytes crate, which offers zero-copy byte slices, this crate does the same but for strings. It is backed by standard
Rust crate for obfuscating string literals.
Obfustring This crate provides a obfuscation macro for string literals. This makes it easy to protect them from common reverse engineering attacks lik
An extremely fast glob matching library in Rust.
glob-match An extremely fast glob matching library with support for wildcards, character classes, and brace expansion. Linear time matching. No expone
Code for working with edge-matching puzzles in the Eternity 2 family.
e2rs Code for working with edge-matching puzzles in the Eternity 2 family. This is a WIP sketch of some APIs and algs for representing and manipulatin
A crate for converting an ASCII text string or file to a single unicode character
A crate for converting an ASCII text string or file to a single unicode character. Also provides a macro to embed encoded source code into a Rust source file. Can also do the same to Python code while still letting the code run as before by wrapping it in a decoder.
`matchable` provides a convenient enum for checking if a piece of text is matching a string or a regex.
matchable matchable provides a convenient enum for checking if a piece of text is matching a string or a regex. The common usage of this crate is used
rpsc is a *nix command line tool to quickly search for file systems items matching varied criterions like permissions, extended attributes and much more.
rpsc rpsc is a *nix command line tool to quickly search for file systems items matching varied criterions like permissions, extended attributes and mu
`rusty_regex` takes an input string and produces a `regex` string representing what was provided.
rusty_regex This project provides a binary that takes an input string, and preps it for regex usage, effectively replacing known generics and producin
A simple string parsing utility library for Rust, supporting no_std contexts.
strp Utility library for parsing data from an input string, or stdin if built with the std feature. Supports no_std contexts when built without the st
Easy access of struct fields in strings using different/custom pre/postfix: "Hello, {field}" in rust
Easy access to struct fields in strings 🐠 add strung to the dependencies in the Cargo.toml: [dependencies] strung = "0.1.3" 🦀 use/import everything
Machine learning framework for building object trackers and similarity search engines
Similari Similari is a framework that helps build sophisticated tracking systems. The most frequently met operations that can be efficiently implement
Cargo subcommand to easily run targets/examples
cargo-select Cargo subcommand to easily run targets/examples/tests Fuzzy match against targets, examples or tests in current rust project. cargo-selec
🐎 A fast implementation of the Aho-Corasick algorithm using the compact double-array data structure. (Python wrapper for daachorse)
python-daachorse daachorse is a fast implementation of the Aho-Corasick algorithm using the compact double-array data structure. This is a Python wrap
Simple string matching with questionmark- and star-wildcard operator
wildmatch Match strings against a simple wildcard pattern. Tests a wildcard pattern p against an input string s. Returns true only when p matches the
Compiled string templates for Rust
templariusz Compiled string templates for Rust Usage See tests for detailed usage examples Basic example use templariusz::{template, Template}; #[tem
A flexible, simple to use, immutable, clone-efficient String replacement for Rust
A flexible, simple to use, immutable, clone-efficient String replacement for Rust. It unifies literals, inlined, and heap allocated strings into a single type.
Python bindings for heck, the Rust case conversion library
pyheck PyHeck is a case conversion library (for converting strings to snake_case, camelCase etc). It is a thin wrapper around the Rust library heck. R
Rust library to detect bots using a user-agent string
Rust library to detect bots using a user-agent string
Count and convert between different indexing schemes on utf8 string slices
Str Indices Count and convert between different indexing schemes on utf8 string slices. The following schemes are currently supported: Chars (or "Unic
A string truncator and scroller written in Rust
scissrs A string truncator and scroller written in Rust. Usage scissrs --help covers the definitions of this program's flags.
A flexible, simple to use, immutable, clone-efficient String replacement for Rust
flexstr A flexible, simple to use, immutable, clone-efficient String replacement for Rust Overview Rust is great, but it's String type is optimized as
Maximizing average happiness privately & securely
mpc-matching Maximizing average happiness privately & securely. What? Suppose there's a group of n ladies and n lads, and they want to be matched in p
Chemical structure generation for protein sequences as SMILES string.
proteinogenic Chemical structure generation for protein sequences as SMILES string. 🔌 Usage This crate builds on top of purr, a crate providing primi
An annotated string type in Rust, made up of string slices
A string type made up of multiple annotated string slices.
Write a simple CLI script, that when given a 64-byte encoded string
Write a simple CLI script, that when given a 64-byte encoded string, it finds a suitable 4-byte prefix so that, a SHA256 hash of the prefix combined with the original string of bytes, has two last bytes as 0xca, 0xfe. Script should expect the original content of the string to be passed in hexadecimal format and should return two lines, first being the SHA256 string found and second 4-byte prefix used (in hexadecimal format).
Stack heap flexible string designed to improve performance for Rust
flexible-string A stack heap flexible string designed to improve performance. FlexibleString was first implemented in spdlog-rs crate, which improved
stringsext - search for multi-byte encoded strings in binary data
title stringsext - search for multi-byte encoded strings in binary data stringsext is a Unicode enhancement of the GNU strings tool with additional fu
The axiom profiler for exploring and visualizing SMT solver quantifier instantiations (made via E-matching).
Axiom Profiler A tool for visualising, analysing and understanding quantifier instantiations made via E-matching in a run of an SMT solver (at present
An efficient method of heaplessly converting numbers into their string representations, storing the representation within a reusable byte array.
NumToA #![no_std] Compatible with Zero Heap Allocations The standard library provides a convenient method of converting numbers into strings, but thes
Compiletime string literal obfuscation for Rust.
String Obfuscation Compiletime string constant obfuscation for Rust. The string constant itself is embedded in obfuscated form and deobfuscated locall
⚡️ Fast MagicString port driven by Rust and N-API
magic-string-rs 100% API compatible (port) MagicString by Rich-Harris implementation for Node and modern browsers, also, for rust, of course. Installa
my attempt at compromise between unwrapping and bullying my dependencies' authors for Error impl
string-eyre Has this happened to you? error[E0599]: the method `wrap_err` exists for enum `Result(), tauri::Error`, but its trait bounds were not sa
"Algorithms for approximate string matching" in Rust, with Python bindings.
ukkonen Implementation of a bounded Levenshtein distance by Esko Ukkonen in "Algorithms for approximate string matching" in Rust, with Python bindings
A simple string interner / symbol table for Rust projects.
Symbol Interner A small Rust crate that provides a naïve string interner. Consult the documentation to learn about the types that are exposed. Install
Annoyed that Rust has many string types? Well it doesn't have to
generic-str The one true string type in Rust! This project intends to be a proof-of-concept for an idea I had a few months back. There is lots of unsa
Searching for plain-text files for lines that match a given string. Built with Rust.
Getting Started This is a minimal grep command-line utility built on Rust. It provides searching for plain-text files for lines that match a given str
A lightweight and snappy crate to remove emojis from a string.
A lightweight and snappy crate to remove emojis from a string.
Finds matching solidity function signatures for a given 4 byte signature hash and arguments.
Finds matching solidity function signatures for a given 4 byte signature hash and arguments. Useful for finding collisions or 0x00000000 gas saving methods (though there are better techniques for saving gas on calldata)
SubStrings, Slices and Random String Access in Rust
SubStrings, Slices and Random String Access in Rust This is a simple way to do it. Description Rust string processing is kind of hard, because text in
Number names is a Rust library to provide formatted string names for cardinal and ordinal numbers.
Number Names Number names is a Rust library to provide formatted string names for cardinal and ordinal numbers. At this time, only American English is
UnixString is An FFI-friendly null-terminated byte string
UnixString is an FFI-friendly null-terminated byte string that may be constructed from a String, a CString, a PathBuf, an OsString or a collection of bytes.
🐎 Daac Horse: Double-Array Aho-Corasick in Rust
🐎 daachorse Daac Horse: Double-Array Aho-Corasick Overview A fast implementation of the Aho-Corasick algorithm using Double-Array Trie. Examples use
Front-coding string dictionary in Rust
Front-coding string dictionary in Rust This is a Rust library of the (plain) front-coding string dictionary described in Martínez-Prieto et al., Pract
Pass Rust strings to C with potentially not needing heap allocation
cfixed-string is used for passing Rust string to C with potentially not needing to do a heap allocation. A problem with using the standard library CSt
A memory efficient immutable string type that can store up to 24* bytes on the stack
compact_str A memory efficient immutable string type that can store up to 24* bytes on the stack. * 12 bytes for 32-bit architectures About A CompactS
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. Authors: Sanjay Ghem
Rust bindings for VirusTotal/Yara
yara-rust Bindings for the Yara library from VirusTotal. More documentation can be found on the Yara's documentation. Example The implementation is in
Qdrant - vector similarity search engine with extended filtering support
Vector Similarity Search Engine with extended filtering support Qdrant (read: quadrant ) is a vector similarity search engine. It provides a productio
microtemplate - A fast, microscopic helper crate for runtime string interpolation.
microtemplate A fast, microscopic helper crate for runtime string interpolation. Design Goals Very lightweight: I want microtemplate to do exactly one
Rust library for program synthesis of string transformations from input-output examples 🔮
Synox implements program synthesis of string transformations from input-output examples. Perhaps the most well-known use of string program synthesis in end-user programs is the Flash Fill feature in Excel. These string transformations are learned from input-output examples.
Rust library for string parsing of basic data structures.
afmt Simple rust library for parsing basic data structures from strings. Usage You can specify string formats to any strucute, via the use of the fmt
Padding/aligning values without heap allocation
zero-copy-pads Padding/aligning values without heap allocation. Cargo Features std (default feature): Disable #![no_std]. Enable features that require
A fast implementation of Aho-Corasick in Rust.
aho-corasick A library for finding occurrences of many patterns at once with SIMD acceleration in some cases. This library provides multiple pattern s
An extremely high performance matching engine written in Rust.
Galois Introduction Galois is an extremely high performance matching engine written in Rust, typically used for the crypto currency exchange service.
A Rust macro for writing regex pattern matching.
regexm A Rust macro for writing regex pattern matching.
Rust edit distance routines accelerated using SIMD. Supports fast Hamming, Levenshtein, restricted Damerau-Levenshtein, etc. distance calculations and string search.
triple_accel Rust edit distance routines accelerated using SIMD. Supports fast Hamming, Levenshtein, restricted Damerau-Levenshtein, etc. distance cal
An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
regex A Rust library for parsing, compiling, and executing regular expressions. Its syntax is similar to Perl-style regular expressions, but lacks a f
Rust query string parser with nesting support
What is Queryst? This is a fork of the original, with serde and serde_json updated to 0.9 A query string parsing library for Rust inspired by https://
Array helpers for Rust's Vector and String types
array_tool Array helpers for Rust. Some of the most common methods you would use on Arrays made available on Vectors. Polymorphic implementations for
This tool is for those who often want to search for a string deeply into a directory in recursive mode, but not with the great tool: grep, ack, ripgrep .........一个工具最大的价值不是它有多少功能,而是它能够让你以多快的速度达成所愿......
SSS - so stupid search tool 阿Q的哥锐普 English Documentation install install from source code 1.install rust toolchain curl --proto '=https' --tlsv1.2 -
xargs + awk with pattern matching support. `ls *.bak | rargs -p '(.*)\.bak' mv {0} {1}`
Rargs is kind of xargs + awk with pattern-matching support. Installation Mac OS brew install rargs Nix nix-env -i rargs (Currently available in unst