246 Repos
Utilities for string manipulation, encoding, and internationalization.
Explore 246 awesome GitHub repositories matching part of an awesome list · Text Processing. Refine with filters or upvote what's useful.
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
Fast, recursive line-oriented search tool.
Nanoid is a library for generating unique, fixed-length identifiers designed for distributed systems and database indexing. It produces compact, URL-safe strings by mapping random byte values to a custom character set, allowing for consistent memory allocation and predictable indexing performance across independent nodes without the need for central coordination. The library distinguishes itself by utilizing system-level, cryptographically secure entropy sources to ensure that every generated identifier is statistically unpredictable. This approach provides resistance against collision attack
Tiny, secure, URL-friendly unique ID generator.
Colly is a web scraping framework and concurrent crawler written in Go. It provides a system for traversing web pages, following links, and extracting structured data from HTML and XML documents. The framework includes a distributed scraping engine designed to spread data collection tasks across multiple instances to increase throughput. It ensures compliance with website owner policies by automatically reading and respecting robots.txt files. The system manages request lifecycles through domain-based rate limiting, concurrency controls, and session management via a stateful cookie jar. It s
High-performance web scraping framework.
goquery is a Go HTML parsing library and CSS selector engine used to isolate and retrieve specific text or attributes from HTML documents. It functions as an HTML DOM manipulator that converts raw HTML strings into a structured tree for programmatic navigation and search. The library provides a fluent interface for chaining selection and filtering operations and utilizes a wrapper-based abstraction to simplify data extraction and manipulation of nodes. It employs an iterator-based processing mechanism to apply operations to every node within a matched selection. Its primary capabilities cove
jQuery-style DOM manipulation for HTML documents.
Bleve is a search indexing engine library written in Go, designed to provide full-text search and document retrieval capabilities for embedded application data. It functions as a framework for indexing structured or unstructured information, allowing developers to build searchable collections that support complex query logic and data analysis. The engine distinguishes itself through a pluggable analysis pipeline that normalizes text before indexing, alongside support for vector similarity search to identify semantically related content. It utilizes finite-state transducer automata for efficie
Modern text indexing and search library.
ripgrep-all is a command-line utility that extends ripgrep to perform regular expression searches across binary files, compressed archives, and media formats. It functions as a universal text extractor that converts non-plain-text formats, such as PDFs, E-books, and Office documents, into searchable text. The tool uses a system of adapters to transform binary data into plain text and utilizes a local database to cache these extracted versions, accelerating repeated search operations. It identifies file types by analyzing header magic bytes rather than relying on file extensions. The project
Search tool for text within PDFs, archives, and documents.
YYText is an iOS rich text framework used for rendering and editing complex attributed text. It features an asynchronous text rendering engine that calculates layout on background threads to maintain interface performance, alongside an attributed text serializer for converting rich text structures into storable formats. The framework provides specialized tools for non-rectangular text layout, allowing text to wrap around custom container paths and exclusion shapes. It also supports advanced typography requirements, including vertical text formatting for East Asian languages and the applicatio
High-performance framework for displaying and editing rich text.
This project is a POSIX shell toolset providing utilities for parsing, formatting, interpreting, and validating shell scripts. It includes a parser that converts Bash and Zsh source code into structured syntax trees, a formatter for standardizing script layout, and a runtime interpreter for executing shell commands and script logic. The toolset supports dialect-aware parsing to handle multiple shell language specifications. It provides capabilities for static analysis, allowing shell source code to be converted into structured data for external manipulation or validation against specific dial
Shell script parsing and formatting library.
i18next is a JavaScript localization library and internationalization framework used to translate application text into multiple languages. It functions as a dynamic translation manager that handles translation resources, language detection, and the mapping of unique keys to localized strings. The system features a pluralization and interpolation engine that applies language-specific grammatical rules for numeric counts and injects dynamic variables into strings. It utilizes a plugin-based backend architecture to load and cache translation namespaces from various sources, including remote ser
Comprehensive internationalization framework.
Grex is a regular expression generator and Rust pattern library that synthesizes a single regular expression from a set of provided text test cases. It functions as a command-line tool and a library, utilizing a Rust-based engine to analyze commonalities across input strings to create matching patterns. The project distinguishes itself through Unicode-aware grapheme processing, ensuring consistent matching across diverse character sets and non-ASCII text. It also provides Python bindings to make its core Rust logic available within Python environments. The system covers pattern generalizatio
Tool for generating regular expressions from test cases.
Peco is an interactive text filter and fuzzy finder for the terminal. It serves as a terminal user interface selection tool that filters standard input in real-time using fuzzy matching and regular expressions. The tool preserves and renders ANSI color escape sequences from piped input streams while performing matching logic on plain-text versions. It supports multi-stage filtering, allowing users to freeze result sets to create a new base for subsequent refinements. Capability areas include advanced search filtering with negative matching, multi-item selection, and the ability to pipe selec
Interactive filtering tool for command output.
DTCoreText is an iOS rich text engine and attributed string converter designed to render formatted HTML content natively. It transforms HTML strings into native text styles and layouts, allowing applications to display rich text without the overhead of a web view. The project functions as a CoreText HTML renderer that integrates HTML strings with the CoreText framework for high-performance rendering. It provides a lightweight alternative for displaying rich text within native application labels and text views. The engine includes an HTML-to-attributed string parser and a native text layout e
Methods for rendering HTML content using CoreText.
FlashText ist ein wörterbuchbasierter Textprozessor und eine Bibliothek zur Keyword-Extraktion, die für hochperformante String-Suche und programmatische Inhaltsersetzung entwickelt wurde. Sie bietet spezialisierte Utilities, um vordefinierte Begriffe aus Texten zu identifizieren und abzurufen oder spezifische Begriffe durch Ersatz-Strings in großen Datenmengen auszutauschen. Das Projekt nutzt eine Aho-Corasick-String-Suchimplementierung, um das Matching mehrerer Muster zu ermöglichen. Dieser Ansatz erlaubt das Scannen von Text in einem einzigen Durchgang und eine Suchkomplexität in linearer Zeit, wodurch die Verarbeitungszeit von der Länge des Eingabetextes abhängt und nicht von der Größe des Keyword-Wörterbuchs. Die Bibliothek deckt das Management von Keyword-Wörterbüchern zur Pflege gezielter Begrifflisten ab und bietet Workflows sowohl für die automatisierte Textersetzung als auch für die Keyword-Extraktion. Diese Funktionen ermöglichen die systematische Modifikation und den Abruf vordefinierter Begriffe innerhalb massiver Datensätze.
Efficient library for searching and replacing text.
Blackfriday ist eine Go-Bibliothek zum Parsen und Konvertieren von Markdown-Text in HTML, LaTeX und andere strukturierte Formate. Sie fungiert als erweiterbarer Markdown-Prozessor, der Syntax in Ziel-Markup-Sprachen transformiert. Das Projekt zeichnet sich durch seine erweiterbare Rendering-Architektur aus, die die Erstellung diverser Zielformate wie Slack-Nachrichtenstile, Confluence Wiki Markup und GitHub Flavored Markdown ermöglicht. Es unterstützt benutzerdefinierte Syntaxerweiterungen, einschließlich Definitionslisten, Fußnoten, Autolinks und Durchstreichungen. Der Prozessor enthält Dienstprogramme zur Generierung automatischer Inhaltsverzeichnisse und URL-sicherer Anker-Identifikatoren für Überschriften. Er bietet zudem ein Tool zur Typografie-Verbesserung, das Standard-Satzzeichen durch typografische Anführungszeichen und professionelle Gedankenstriche ersetzt. Das System bietet Funktionen für die Produktion vollständiger Webseiten und die Erstellung professioneller LaTeX-Dokumente.
Fast and extensible Markdown parsing.
PhoneNumberKit ist ein Swift-Framework zum Parsen, Formatieren und Validieren internationaler Telefonnummern gemäß globaler Nummerierungsstandards. Es bietet ein System aus Nachschlagetabellen, strukturellen Parsern und Validierungstools, um die Komplexität internationaler Telefonnummerierung zu handhaben. Die Bibliothek wandelt Roh-Strings in strukturierte Objekte um, die Ländercodes und nationale Nummern enthalten. Sie übersetzt internationale Vorwahlen in vollständige Ländernamen und überprüft, ob Telefonnummern-Strings logisch möglich sind und spezifischen regionalen Nummerierungsplänen entsprechen. Das Projekt enthält Dienstprogramme zur Transformation von Rohziffern in standardisierte internationale oder nationale Layouts. Es bietet zudem Funktionen für Echtzeit-Benutzereingabe-Maskierung und die Anzeige regionsspezifischer Platzhalter und Flaggen während der Eingabe.
Framework for parsing, formatting, and validating international phone numbers.
python-pinyin ist eine Python-Bibliothek zur Transliteration von vereinfachten und traditionellen chinesischen Schriftzeichen in phonetisches Pinyin. Sie fungiert als Transliterationssystem, das Text konvertiert, während es Tone Sandhi unterstützt und Dienstprogramme zur Transformation von Pinyin zwischen verschiedenen Formaten bereitstellt, wie z. B. numerische Töne, Akzentzeichen oder phonetische Initialen. Die Bibliothek verfügt über einen polyphonen Zeichen-Resolver, der den umgebenden Wortkontext analysiert, um die korrekte Aussprache für Zeichen mit mehreren Lauten auszuwählen. Sie enthält zudem ein anpassbares Wörterbuchsystem, das die Erweiterung der Standard-Transliterationsergebnisse mithilfe benutzerdefinierter phonetischer Mappings für einzelne Zeichen und Phrasen ermöglicht. Das Toolset deckt breitere linguistische Operationen ab, einschließlich der Extraktion phonetischer Komponenten wie Initialen und Finals, der Anwendung verschiedener phonetischer Stile und der Handhabung nicht konvertierbarer Zeichen. Diese Funktionen sind sowohl als Bibliothek als auch über CLI-Schnittstellen für Textkonvertierung und Tonformat-Übersetzung zugänglich.
Converts Chinese characters to Pinyin.
Chroma ist ein in Go geschriebener Syntax-Highlighter, der rohen Quellcode in farbigen Text oder HTML umwandelt. Er identifiziert Programmiersprachen und Tokens unter Verwendung sprachspezifischer Lexer, um hervorgehobene Ausgaben für verschiedene Umgebungen zu erzeugen. Das Projekt nutzt ein theme-gesteuertes Kolorierungssystem, das Tokentypen durch eine zwischengeschaltete Style-Mapping-Schicht von den endgültigen Farben entkoppelt. Dies ermöglicht benutzerdefinierte Code-Theming-Optionen durch das Mapping spezifischer Token-Kategorien auf Vorder- und Hintergrundfarben. Das System deckt Spracherkennung, Terminal-Textformatierung für ANSI-kompatible Viewer und Web-Code-Präsentation mittels HTML-Generierung mit Zeilennummerierung und CSS-Klassen ab. Es enthält zudem ein Command-Line-Interface zur Kolorierung von Dateien direkt im Terminal.
Syntax highlighting library.
Goldmark is a Markdown parser and renderer written in Go that converts Markdown text into HTML or XHTML. It implements the CommonMark specification to ensure consistent parsing behavior. The project utilizes a modular extension registry, allowing for the addition of custom syntax such as tables, task lists, and footnotes. It also includes specialized support for CJK languages to handle specific line-breaking and emphasis rules for Chinese, Japanese, and Korean characters. The library parses text into an abstract syntax tree for programmatic document analysis and modification. Its capabilitie
Extensible Markdown parser.
This is a TOML parser and serializer for the Go language. It serves as a data serialization library and configuration file mapper that encodes and decodes data between Go structures and the TOML configuration format. The library provides interfaces for custom type marshaling, allowing for specialized logic when parsing or serializing specific data types. It transforms structured objects into deterministic TOML documents for storage or transmission. The project covers a broad range of data processing capabilities, including structured value encoding, TOML data generation, and metadata inspect
TOML encoding and decoding with reflection support.
go-humanize ist eine Go-Bibliothek zur Umwandlung von Rohzahlen, Byte-Größen und Zeitdauern in natürlichsprachliche Strings, um die Lesbarkeit für Menschen zu verbessern. Das Projekt bietet spezialisierte Formatierer für Byte-Größen nach SI- oder IEC-Standards sowie einen Zeitdauer-Formatierer, der Zeitspannen in Beschreibungen wie „vor drei Tagen“ umwandelt. Es enthält zudem einen SI-Einheiten-Formatierer zur Umrechnung numerischer Werte in SI-Präfixe und -Symbole. Über technische Einheiten hinaus enthält die Bibliothek englischsprachige Utilities für die Pluralisierung von Substantiven, die Generierung von Ordinalzahlen und das Verbinden von Wortlisten mit grammatikalischen Konjunktionen. Zusätzliche numerische Tools verarbeiten Tausendertrennzeichen, Dezimalpräzision und Suffixe für große Zahlen.
Converts data types into human-readable formats.