246 repositorios
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 es un procesador de texto basado en diccionarios y una librería de extracción de palabras clave diseñada para la búsqueda de cadenas de alto rendimiento y el reemplazo programático de contenido. Proporciona utilidades especializadas para identificar y recuperar términos predefinidos de texto o intercambiar términos específicos con cadenas de reemplazo en grandes volúmenes de datos. El proyecto utiliza una implementación de búsqueda de cadenas Aho-Corasick para permitir la coincidencia de múltiples patrones. Este enfoque permite el escaneo de texto en una sola pasada y una complejidad de búsqueda de tiempo lineal, asegurando que el tiempo de procesamiento dependa de la longitud del texto de entrada en lugar del tamaño del diccionario de palabras clave. La librería cubre la gestión de diccionarios de palabras clave para mantener listas de términos específicos y proporciona flujos de trabajo tanto para el reemplazo automático de texto como para la extracción de palabras clave. Estas capacidades permiten la modificación y recuperación sistemática de términos predefinidos dentro de datasets masivos.
Efficient library for searching and replacing text.
Blackfriday es una librería de Go para analizar y convertir texto Markdown en HTML, LaTeX y otros formatos estructurados. Funciona como un procesador Markdown extensible que transforma la sintaxis en lenguajes de marcado de destino. El proyecto se distingue por su arquitectura de renderizado conectable, que permite la producción de diversos objetivos de salida como estilos de mensajes de Slack, marcado Wiki de Confluence y GitHub Flavored Markdown. Admite extensiones de sintaxis personalizadas, incluyendo listas de definición, notas al pie, enlaces automáticos y tachados. El procesador incluye utilidades para generar tablas de contenido automáticas e identificadores de anclaje seguros para URL para los encabezados. También cuenta con una herramienta de mejora tipográfica que reemplaza la puntuación estándar con comillas curvas y guiones profesionales. El sistema proporciona capacidades para la producción de páginas web completas y la generación de documentos LaTeX profesionales.
Fast and extensible Markdown parsing.
PhoneNumberKit es un framework de Swift para analizar, formatear y validar números de teléfono internacionales de acuerdo con los estándares de numeración globales. Proporciona un sistema de tablas de búsqueda, analizadores estructurales y herramientas de validación para manejar las complejidades de la numeración telefónica internacional. La biblioteca convierte cadenas sin procesar en objetos estructurados que contienen códigos de país y números nacionales. Traduce códigos de marcación internacionales en nombres de países completos y verifica si las cadenas de números de teléfono son lógicamente posibles y cumplen con planes de numeración regionales específicos. El proyecto incluye utilidades para transformar dígitos sin procesar en diseños internacionales o nacionales estandarizados. También proporciona capacidades para el enmascaramiento de entrada de usuario en tiempo real y la visualización de marcadores de posición y banderas específicos de la región a medida que el usuario escribe.
Framework for parsing, formatting, and validating international phone numbers.
python-pinyin es una librería de Python para transliterar caracteres chinos simplificados y tradicionales a pinyin fonético. Funciona como un sistema de transliteración que convierte texto mientras admite el sandhi tonal y proporciona utilidades para transformar pinyin entre diferentes formatos, como tonos numéricos, marcas de acento o iniciales fonéticas. La librería cuenta con un resolvedor de caracteres polifónicos que analiza el contexto de las palabras circundantes para seleccionar la pronunciación correcta para caracteres con múltiples sonidos. También incluye un sistema de diccionario personalizable que permite la extensión de los resultados de transliteración predeterminados utilizando mapeos fonéticos personalizados de un solo carácter y basados en frases. El conjunto de herramientas cubre operaciones lingüísticas más amplias, incluyendo la extracción de componentes fonéticos como iniciales y finales, la aplicación de varios estilos fonéticos y el manejo de caracteres no convertibles. Estas capacidades son accesibles tanto como librería como a través de interfaces de línea de comandos para la conversión de texto y la traducción de formatos de tono.
Converts Chinese characters to Pinyin.
Chroma es un resaltador de sintaxis escrito en Go que convierte código fuente crudo en texto coloreado o HTML. Identifica lenguajes de programación y tokens utilizando lexers específicos del lenguaje para producir una salida resaltada para varios entornos. El proyecto utiliza un sistema de coloración basado en temas que desacopla los tipos de token de los colores finales a través de una capa intermedia de mapeo de estilos. Esto permite temas de código personalizados mapeando categorías de tokens específicas a colores de primer plano y fondo. El sistema cubre la identificación de lenguaje, el formato de texto de terminal para visores compatibles con ANSI y la presentación de código web mediante la generación de HTML con numeración de líneas y clases CSS. También incluye una interfaz de línea de comandos para colorear archivos directamente en la terminal.
Syntax highlighting library.
Goldmark es un parser y renderizador de Markdown escrito en Go que convierte texto Markdown a HTML o XHTML. Implementa la especificación CommonMark para garantizar un comportamiento de análisis consistente. El proyecto utiliza un registro de extensiones modular, permitiendo la adición de sintaxis personalizada como tablas, listas de tareas y notas al pie. También incluye soporte especializado para idiomas CJK para manejar reglas específicas de salto de línea y énfasis para caracteres chinos, japoneses y coreanos. La librería analiza el texto en un árbol de sintaxis abstracta (AST) para el análisis y modificación programática de documentos. Sus capacidades incluyen el enlace automático de URLs y correos electrónicos, formateo de puntuación tipográfica y la asignación de atributos personalizados a los elementos.
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 es una librería de Go para convertir números crudos, tamaños de bytes y duraciones en cadenas de lenguaje natural para mejorar la legibilidad humana. El proyecto proporciona formateadores especializados para tamaños de bytes utilizando estándares SI o IEC y un formateador de tiempo relativo que transforma duraciones en descripciones como hace tres días. También incluye un formateador de unidades SI para convertir valores numéricos hacia y desde prefijos y símbolos del Sistema Internacional de Unidades. Más allá de las unidades técnicas, la librería incluye utilidades de lenguaje natural en inglés para pluralizar sustantivos, generar números ordinales y unir listas de palabras con conjunciones gramaticales. Herramientas numéricas adicionales manejan separadores de miles, precisión decimal y sufijos de números grandes.
Converts data types into human-readable formats.