246 dépôts
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 est un processeur de texte basé sur un dictionnaire et une bibliothèque d'extraction de mots-clés conçue pour la recherche de chaînes haute performance et le remplacement de contenu par programmation. Il fournit des utilitaires spécialisés pour identifier et récupérer des termes prédéfinis à partir de texte ou échanger des termes spécifiques avec des chaînes de remplacement sur de grands volumes de données. Le projet utilise une implémentation de recherche de chaînes Aho-Corasick pour permettre la correspondance de motifs multiples. Cette approche permet un balayage de texte en un seul passage et une complexité de recherche en temps linéaire, garantissant que le temps de traitement dépend de la longueur du texte d'entrée plutôt que de la taille du dictionnaire de mots-clés. La bibliothèque couvre la gestion de dictionnaires de mots-clés pour maintenir des listes de termes ciblés et fournit des flux de travail pour le remplacement automatique de texte et l'extraction de mots-clés. Ces capacités permettent la modification et la récupération systématiques de termes prédéfinis au sein de jeux de données massifs.
Efficient library for searching and replacing text.
Blackfriday est une bibliothèque Go pour analyser et convertir du texte Markdown en HTML, LaTeX et d'autres formats structurés. Il fonctionne comme un processeur Markdown extensible qui transforme la syntaxe en langages de balisage cibles. Le projet se distingue par son architecture de rendu enfichable, qui permet la production de diverses cibles de sortie telles que les styles de message Slack, le balisage Wiki Confluence et le GitHub Flavored Markdown. Il prend en charge des extensions de syntaxe personnalisées, notamment les listes de définitions, les notes de bas de page, les liens automatiques et les barrés. Le processeur inclut des utilitaires pour générer automatiquement des tables des matières et des identifiants d'ancrage sécurisés pour les titres. Il dispose également d'un outil d'amélioration typographique qui remplace la ponctuation standard par des guillemets courbes et des tirets professionnels. Le système fournit des capacités pour la production de pages web complètes et la génération de documents LaTeX professionnels.
Fast and extensible Markdown parsing.
PhoneNumberKit est un framework Swift pour analyser, formater et valider les numéros de téléphone internationaux selon les standards de numérotation mondiaux. Il fournit un système de tables de recherche, d'analyseurs structurels et d'outils de validation pour gérer les complexités de la numérotation téléphonique internationale. La bibliothèque convertit les chaînes brutes en objets structurés contenant les codes pays et les numéros nationaux. Elle traduit les codes d'appel internationaux en noms de pays complets et vérifie si les chaînes de numéros de téléphone sont logiquement possibles et conformes à des plans de numérotation régionaux spécifiques. Le projet inclut des utilitaires pour transformer des chiffres bruts en mises en page internationales ou nationales standardisées. Il fournit également des capacités pour le masquage de saisie utilisateur en temps réel et l'affichage d'espaces réservés et de drapeaux spécifiques à la région au fur et à mesure que l'utilisateur tape.
Framework for parsing, formatting, and validating international phone numbers.
python-pinyin est une bibliothèque Python pour translittérer les caractères chinois simplifiés et traditionnels en pinyin phonétique. Elle fonctionne comme un système de translittération qui convertit le texte tout en prenant en charge le sandhi tonal et en fournissant des utilitaires pour transformer le pinyin entre différents formats, tels que les tons numériques, les marques d'accent ou les initiales phonétiques. La bibliothèque dispose d'un résolveur de caractères polyphoniques qui analyse le contexte des mots environnants pour sélectionner la prononciation correcte des caractères ayant plusieurs sons. Elle inclut également un système de dictionnaire personnalisable qui permet l'extension des résultats de translittération par défaut en utilisant des mappages phonétiques personnalisés basés sur des caractères uniques ou des phrases. La boîte à outils couvre des opérations linguistiques plus larges, notamment l'extraction de composants phonétiques comme les initiales et les finales, l'application de divers styles phonétiques et la gestion des caractères non convertibles. Ces capacités sont accessibles à la fois en tant que bibliothèque et via des interfaces en ligne de commande pour la conversion de texte et la traduction de format de ton.
Converts Chinese characters to Pinyin.
Chroma est un colorateur de syntaxe écrit en Go qui convertit le code source brut en texte colorisé ou en HTML. Il identifie les langages de programmation et les tokens en utilisant des lexers spécifiques au langage pour produire une sortie mise en évidence pour divers environnements. Le projet utilise un système de colorisation piloté par thème qui découple les types de tokens des couleurs finales via une couche de mappage de style intermédiaire. Cela permet un thématage de code personnalisé en mappant des catégories de tokens spécifiques vers des couleurs de premier plan et d'arrière-plan. Le système couvre l'identification du langage, le formatage de texte de terminal pour les visionneuses compatibles ANSI et la présentation de code web via la génération HTML avec numérotation de ligne et classes CSS. Il inclut également une interface en ligne de commande pour coloriser les fichiers directement dans le terminal.
Syntax highlighting library.
Goldmark est un parseur et moteur de rendu Markdown écrit en Go qui convertit le texte Markdown en HTML ou XHTML. Il implémente la spécification CommonMark pour garantir un comportement de parsing cohérent. Le projet utilise un registre d'extensions modulaire, permettant l'ajout de syntaxes personnalisées telles que les tableaux, les listes de tâches et les notes de bas de page. Il inclut également un support spécialisé pour les langues CJK afin de gérer les règles spécifiques de césure et d'emphase pour les caractères chinois, japonais et coréens. La bibliothèque analyse le texte en un arbre syntaxique abstrait (AST) pour l'analyse et la modification programmatique de documents. Ses capacités incluent le lien automatique des URLs et emails, le formatage typographique de la ponctuation et l'assignation d'attributs personnalisés aux éléments.
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 est une bibliothèque Go permettant de convertir des nombres bruts, des tailles d'octets et des durées en chaînes de caractères en langage naturel pour améliorer la lisibilité humaine. Le projet fournit des formateurs spécialisés pour les tailles d'octets utilisant les normes SI ou IEC, ainsi qu'un formateur de temps relatif qui transforme les durées en descriptions telles que "il y a trois jours". Il inclut également un formateur d'unités SI pour convertir des valeurs numériques vers et depuis les préfixes et symboles du Système International d'Unités. Au-delà des unités techniques, la bibliothèque inclut des utilitaires de langage naturel pour la mise au pluriel des noms, la génération de nombres ordinaux et la jonction de listes de mots avec des conjonctions grammaticales. Des outils numériques supplémentaires gèrent les séparateurs de milliers, la précision décimale et les suffixes pour les grands nombres.
Converts data types into human-readable formats.