30 open-source projects similar to google/re2, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Google Re2 alternative.
This is a Rust regular expression library that provides a finite automata engine for searching and matching text patterns. It functions as a Unicode-compliant text scanner designed to guarantee linear time execution on all inputs to prevent catastrophic backtracking. The engine supports both single and multi-pattern search capabilities, allowing it to scan a piece of text for multiple regular expressions simultaneously. It operates on both strings and raw byte slices to identify matching text segments. The library covers text parsing, string validation, and pattern searching. It includes cap
This project is a regular expression learning resource and tutorial designed to teach the syntax and logic used to find, match, and manipulate text strings. It serves as a comprehensive guide and syntax reference for building complex search queries and data validation logic. The material covers the use of meta-characters, quantifiers, and boundary markers to define precise text match patterns. It includes instructional content on the logic of greedy and lazy matching, as well as the implementation of capture groups. The resource details a wide range of pattern matching capabilities, includin
This library is a header-only C++ framework that performs regular expression evaluation and static string analysis during the compilation phase. By leveraging template metaprogramming and constant expression evaluation, it transforms pattern matching logic into static state machines, effectively shifting the cost of parsing and validation from runtime to build time. The project distinguishes itself by encoding text data directly into the type system, allowing for the validation and extraction of string content before a program ever executes. This approach ensures that regular expression patte
The Silver Searcher is a high-performance text search utility and regex code search tool designed to locate strings and regular expressions within plain text and source code. It functions as a codebase pattern matcher that provides highlighted results with surrounding line context and respects standard ignore files. The utility includes specialized capabilities for searching inside zlib and lzma compressed archives. It implements high-throughput processing via parallel-threaded file scanning and just-in-time regular expression compilation. The tool's search and indexing surface covers output
YARA is a pattern matching engine and binary analysis tool used to identify and classify malware samples. It functions as a malware research framework that allows for the definition of file descriptions and detection rules to find indicators of compromise within binaries. The system enables the creation of custom detection rules using strings, wildcards, and regular expressions. These rules use boolean logic to match textual or binary patterns, allowing for the classification of files into specific malware families and the automation of threat intelligence. The engine utilizes Aho-Corasick s
Hyperscan is a high-performance regular expression matching library that scans large volumes of data against thousands of patterns simultaneously. It accepts PCRE-compatible regular expressions and supports multi-pattern matching in a single pass, approximate matching within a configurable edit distance, and streaming mode for processing data that arrives in blocks. The library is designed for throughput-oriented scanning across block, streaming, and vectored inputs. What distinguishes Hyperscan is its hybrid automata engine, which combines deterministic and nondeterministic finite automata t
GraalVM is a polyglot virtual machine and high-performance runtime designed to execute multiple programming languages within a single environment. It functions as a JVM language toolkit for building language implementations, a native image compiler for transforming bytecode into standalone binaries, and an execution environment for LLVM bitcode and WebAssembly modules. The project is distinguished by its polyglot interoperability framework, which allows different languages to share data and execution state with low overhead. It utilizes self-modifying abstract syntax trees to optimize languag
Memgraph is an in-memory, distributed graph database designed for high-performance labeled property graph management. It utilizes a Cypher query engine for declarative data retrieval and manipulation, providing a scalable knowledge graph backend that integrates vector search and graph traversals. The system distinguishes itself as a real-time graph analytics platform, employing native C++ and CUDA implementations to execute complex network analysis and dynamic community detection on streaming data. It provides specialized support for AI integration, including GraphRAG capabilities, the constr
This project is a metadata query engine and indexer for markdown files, designed to transform YAML frontmatter and inline fields into dynamic tables and lists. It provides a background process that extracts tags and custom fields into a searchable database, enabling the automated indexing of notes. The system is distinguished by its dual approach to data retrieval: a dedicated query language for SQL-like filtering and grouping, and a JavaScript data API. This API allows for programmatic metadata extraction and the creation of custom views and extensions using TypeScript typings. Its broader
Ajv is a high-performance data validation framework that compiles JSON schemas into optimized, standalone JavaScript functions. By transforming declarative schema definitions into executable code, it eliminates runtime interpretation overhead and provides a secure, efficient way to enforce data integrity across both browser and server environments. The library distinguishes itself through its focus on performance and type safety. It employs advanced compilation techniques, including abstract syntax tree optimization and function caching, to ensure rapid validation. Beyond standard checks, it
Calibre is a comprehensive suite for digital library management, serving as a centralized hub for organizing, converting, and editing e-book collections. It functions as a multi-purpose platform that combines a relational database for metadata tracking with a powerful processing engine capable of transforming document formats and restructuring internal markup. Beyond local management, the software acts as a content server, enabling users to host their libraries over a network for remote access and reading via standard web browsers. The project distinguishes itself through its deep extensibili
Inflector is a linguistic data processing library designed to handle string transformations and grammatical inflection within PHP applications. It provides a centralized engine for converting words between singular and plural forms and standardizing text formats to ensure consistency across dynamic content and codebase naming conventions. The library distinguishes itself through a rule-based inflection engine that utilizes regular expression pattern matching to apply grammatical logic. Developers can extend this functionality using a configurable registry, which allows for the injection or ov
This project is the .NET Base Class Library, providing the foundational types and APIs required for .NET applications. It serves as a cross-platform runtime library and a standardized managed API framework, acting as the primary set of namespaces for memory management, collections, and asynchronous programming. The library enables the development of enterprise backend infrastructure and the execution of managed code consistently across different operating systems and hardware architectures. It includes capabilities for cross-platform application deployment using self-contained binaries, frame
Vis is a terminal-based modal text editor that utilizes vi keybindings and a system of structural regular expressions. It functions as a scriptable environment where Lua is used for configuration, custom key mappings, and plugin development. The editor distinguishes itself through a syntax highlighting system based on Parsing Expression Grammars and a pattern matching engine that treats text as a structure for complex search and replace operations. It also integrates directly with the system shell, allowing users to pipe text ranges to external commands and capture the resulting output. The
Notepad3 is a lightweight Windows text editor designed as a replacement for the default system notepad. It is built on the Scintilla text engine to provide source code editing capabilities, including syntax highlighting, code folding, and automatic indentation. The editor is distinguished by its support for registry-free portable execution, allowing the application to run from removable storage without system installation. It features integrated file encryption and decryption tools for secure document management and a regular expression engine for complex search and replace operations across
ripgrep is a command-line utility designed for searching through large file trees and source code repositories. It functions as a recursive text processor that traverses directories to locate and display matching patterns, serving as a high-performance alternative to traditional search tools. The tool distinguishes itself through a focus on execution speed and intelligent file handling. It utilizes a finite automata-based regular expression engine to ensure linear time complexity and employs hardware-level acceleration for literal byte sequence scanning. By integrating with version control sy
PyMuPDF is a comprehensive PDF manipulation library and document analysis tool. It serves as a text extraction tool, OCR engine, and image converter, providing a programmatic interface to edit, merge, split, and optimize PDF and Office documents. The project distinguishes itself through high-performance capabilities, including the use of C-bindings for low-level manipulation and parallelized page processing to accelerate workloads. It provides specialized conversion paths, such as transforming PDF content into Markdown for retrieval-augmented generation and large language model pipelines. It
DataTables is a feature-rich HTML table library that transforms static HTML tables into interactive data grids with sorting, paging, filtering, and server-side processing support. It provides a client-side rendering engine that handles table rows, pagination, and sorting entirely in the browser, while also offering a server-side processing pipeline that offloads sorting, filtering, and paging operations to a backend for efficient handling of large datasets. The library distinguishes itself through its plugin-based extension system, which allows custom functions and widgets to modify table beh
pkuseg-python is a Chinese word segmentation toolkit and natural language processing library. It provides specialized models for splitting Chinese text into words across various domains, including news, medical, and web content, and includes a tool for assigning grammatical parts of speech tags to segmented words. The library allows for the training of custom segmentation models using annotated datasets and supports the integration of user-defined dictionaries to ensure specialized terminology is recognized correctly. It employs a multi-threaded execution engine to process large volumes of Ch
Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded scripting engine that allows Go applications to execute JavaScript code and integrate a programmable scripting layer without relying on Cgo or external native dependencies. The project functions as a bridge between Go and JavaScript, enabling bidirectional data exchange and function invocation. It allows Go hosts to expose native structs, slices, and maps as JavaScript objects and arrays, while providing mechanisms to export script values and functions back into native Go type
Bloop is an AI code analysis tool and semantic search engine designed for understanding and querying large-scale codebases. It utilizes a high-performance indexing system written in Rust to enable fast symbol and text retrieval across multiple programming languages. The project differentiates itself by using on-device embeddings for semantic code search, allowing users to locate logic based on meaning and intent rather than exact keywords. It combines a language model with a retrieval-augmented generation approach to provide a natural language interface for conversational querying and the gen
list.js is a JavaScript search and sort library used to add real-time filtering, sorting, and pagination to HTML lists and tables without backend dependencies. It functions as a DOM data indexer and template-driven HTML renderer, allowing developers to manage how data is displayed and discovered on the client side. The library distinguishes itself through a fuzzy string matching engine that handles approximate matches and typos, and a DOM data indexer that extracts values directly from HTML data attributes to build a searchable internal index. It uses a template-driven rendering system to gen
ddgs is a metasearch engine and web content extractor that provides a toolkit for programmatically retrieving search results from DuckDuckGo. It functions as a search API server and a Model Context Protocol server to integrate web search capabilities directly into large language model environments. The project distinguishes itself by aggregating text, image, news, and video results from multiple providers into a single interface. It includes a utility for fetching URLs and converting HTML content into markdown, plain text, or structured data. The system covers a broad range of search capabil
Oni2 is a high-performance, extensible text editor and project-based file manager. It functions as a modal code editor, utilizing a keyboard grammar of verbs and motions to navigate and modify source code without a mouse. It also serves as an LSP client, integrating Language Server Protocol servers to provide code completion, symbol navigation, and refactoring. The editor distinguishes itself by acting as a VSCode extension host, allowing it to load and execute language servers and debuggers from the VSCode ecosystem. It provides a programmable environment where custom functionality is implem
fzf.vim is a Vim fuzzy finder plugin that integrates the fzf command-line interface into the editor. It serves as a text editor search interface and buffer and file navigator, allowing users to quickly locate files, buffers, and text patterns. The plugin functions as a bridge to the fzf command-line tool, enabling users to search for files, grep code content, and navigate git commits, marks, and tags. It also provides a mechanism to send multiple fuzzy search results directly into the Vim quickfix list for batch editing. Broad capabilities include interactive text completion for paths and wo
LibreraReader is a multi-format e-book reader and digital library manager designed for mobile and desktop devices. It functions as a customizable document renderer and a text-to-speech document player that converts written text into spoken audio via a configurable speech engine and integrated media player. The project distinguishes itself through a high degree of visual and functional customization, including the ability to inject custom CSS for styling overrides and the use of pluggable rendering engines to balance speed and stability. It includes specialized navigation tools such as a verti
This project is a pandas data analysis cookbook and Python data science guide. It provides a collection of programmatic recipes and examples for cleaning, manipulating, and analyzing structured data. The project focuses on providing a containerized analysis environment to ensure a consistent workspace and reproducible dependencies when executing data processing scripts. It covers a broad range of data science capabilities, including data ingestion from external sources, raw data cleaning, and exploratory data analysis. These recipes demonstrate how to perform structured data analysis through
GAM is a command-line tool for administering Google Workspace and Cloud Identity. It translates command-line arguments into structured API calls, enabling administrators to manage users, groups, organizational units, and domain settings across a Google Workspace environment. The tool handles authentication through OAuth2 flows, service accounts, and workload identity federation, and supports multi-tenant configurations for managing multiple domains or cloud projects from a single installation. GAM distinguishes itself through its batch processing and automation capabilities. It can process la
Lark is a Python parsing toolkit used to define grammars and convert raw text into annotated parse trees. It serves as an abstract syntax tree generator and a grammar definition language for specifying language rules through terminals and regular expressions. The library provides two primary parsing implementations: an Earley parsing library capable of handling all context-free languages, including those with ambiguity and left-recursion, and a high-performance LALR parsing library designed for deterministic languages with low memory overhead. Beyond core parsing, the toolkit includes capabi
Kakoune is a scriptable, modal text editor for the terminal that employs a client-server architecture. This model allows multiple terminal windows to connect to a single editing session, providing a programmable environment for managing source code and text. The editor is distinguished by its selection-first logic, where a text region must be predefined before a command is applied. It leverages regular expressions to manage multiple cursors and perform bulk edits across complex text patterns, and it integrates deeply with the shell by piping selections through external programs and filters.