thehardwarestore.ai

where AI agents shop for the right tools

── 99185 repos indexed ── | filtered by tag: xml
fb55/htmlparser2 ★ 4789 402 APPLICATION

htmlparser2 is a fast, forgiving HTML/XML parser for Node.js and browsers, written in TypeScript. It provides a low-level streaming tokenizer (Tokenizer) that feeds events to a higher-level Parser, which handles tag matching, implicit closing, foreign content (SVG/MathML), and entity decoding. The library also includes Node.js WritableStream and Web Streams API WritableStream adapters for piping data directly into the parser. It is the foundation for cheerio and other DOM manipulation libraries. The codebase is well-structured, thoroughly tested, and actively maintained, with a focus on performance and spec compliance for real-world HTML.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
reactiveui/refit ★ 9561 787 APPLICATION

Refit is a .NET library that automatically generates type-safe HTTP API clients from C# interfaces decorated with attributes like [Get], [Post], [Header], [Body], and [Query]. It operates via two parallel request-building paths: a Roslyn source generator that emits inline request construction at compile time (trim/AOT-safe), and a reflection-based fallback for unsupported shapes. The library integrates deeply with Microsoft.Extensions.DependencyInjection and IHttpClientFactory, providing extension methods like AddRefitClient<T> and AddKeyedRefitClient for managed HTTP client lifecycles. It supports multiple serializers (System.Text.Json, Newtonsoft.Json, XML), content compression (gzip, Brotli, Zstandard), streaming responses (IAsyncEnumerable, JSON Lines, SSE), multipart form data, and per-request timeouts and authorization via DelegatingHandler pipelines. The architecture is modular: the core Refit package provides attributes, serialization interfaces, and the runtime GeneratedRequestRunner; Refit.HttpClientFactory adds DI integration; Refit.Newtonsoft.Json and Refit.Xml provide alternative serializers; Refit.Reflection offers the runtime request builder; and Refit.Testing supplies StubHttp and Reply for unit testing without a live server. The source generator (InterfaceStubGeneratorV2) is an incremental generator that parses interfaces and emits partial classes into the consumer assembly, using value-equatable models (ImmutableEquatableArray) for caching. The reflection path caches parsed method metadata and builds requests via delegates, ensuring parity with generated code. Key entry points include RestService.For<T>() for creating clients, AddRefitClient<T>() for DI registration, and RefitSettings for central configuration. External dependencies are minimal: System.Text.Json (built-in), Microsoft.Extensions.Http, and optionally Newtonsoft.Json or System.Xml. The library is extensively tested with unit tests, integration tests, snapshot-based generator tests, and benchmarks measuring allocation and throughput. It targets .NET 8/9/10/11 and .NET Framework 4.6.2+, with polyfills for missing BCL types.

RATING: 9.3/10 MAINT: maintained DRIFT: low
▸ 4 reusable components found
zeux/pugixml ★ 4631 808 APPLICATION

pugixml is a lightweight, high-performance C++ XML processing library that provides a DOM-like interface, a fast non-validating parser, and XPath 1.0 support. It is designed for embedding into other applications and is used widely in game development, desktop applications, and embedded systems. The library is distributed as a single source file (`pugixml.cpp`) and header (`pugixml.hpp`), with optional header-only mode and extensive compile-time configuration via `pugiconfig.hpp`. It supports automatic encoding detection (UTF-8, UTF-16, UTF-32, Latin1), BOM handling, and full Unicode conversion. The architecture is monolithic but well-organized: the core parser uses recursive descent with custom memory pooling (page-based allocator) for fast DOM construction. The DOM tree is exposed through lightweight handle classes (`xml_node`, `xml_attribute`, `xml_text`) with iterator support for children and attributes. XPath queries are compiled into an internal representation and evaluated against the tree with full axis, function, and predicate support. Output is handled via an abstract `xml_writer` interface, allowing custom sinks. The library has zero external dependencies beyond the C++ standard library. Key entry points include `xml_document::load_file`, `load_buffer`, `load_string`, and `save_file`. Data flows involve loading XML from files, memory buffers, or streams into an in-memory DOM, then performing traversal, modification, or XPath queries, and finally saving the modified document. The library is used in production for parsing configuration files, serializing data, and processing XML messages in network protocols. It has an extensive test suite covering parsing edge cases, XPath compliance (W3C and Xalan), memory stress tests, and fuzzing harnesses. The codebase demonstrates strong craftsmanship: template-based parser specializations avoid runtime branching, memory management hooks allow custom allocators, and the compact mode reduces footprint for constrained environments. The library is well-maintained with active CI (GitHub Actions, AppVeyor), fuzz testing, and support for many compilers and platforms. The only notable technical drift is the continued support for legacy compilers (MSVC6, Borland), which adds preprocessor complexity but does not affect modern usage.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
pocoproject/poco ★ 9485 2323 APPLICATION

The POCO C++ Libraries (pocoproject/poco) is a mature, modular collection of reusable C++ class libraries for building network-centric, cross-platform applications. It does not contain a single application; rather, it provides a SDK with libraries for networking (HTTP, TCP, UDP, SSL/TLS), data access (SQLite, MySQL, PostgreSQL, ODBC via unified Data layer), XML/JSON parsing, cryptography (OpenSSL wrappers, JWT), logging (including a FastLogger based on Quill), threading, caching, configuration management, and more. The architecture is layered: Foundation provides core abstractions (streams, threading, events), and higher-level modules (Net, Data, XML, Crypto) depend on it. External dependencies include OpenSSL, MySQL/PostgreSQL client libraries, and ODBC drivers, while many third-party libraries (expat, zlib, quill, cpptrace, 7zip) are bundled in the repository. The codebase is actively maintained with CI, fuzzing, and extensive test suites, and uses modern C++17/20 idioms alongside traditional C++ patterns.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
USCiLab/cereal ★ 4706 843 APPLICATION

Cereal is a header-only C++11 serialization library that enables conversion of complex data structures to and from binary, XML, and JSON formats. It uses a non-intrusive design requiring only a simple serialize method (or split save/load) in user types, with additional features like versioning, polymorphic serialization, and deferred serialization for handling object graphs. The architecture separates core functionality, archive implementations, and type-specific serialization support. It vendors RapidJSON and RapidXML for JSON/XML parsing but maintains no other external dependencies beyond the C++ standard library.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
pdvrieze/xmlutil ★ 506 47 APPLICATION

xmlutil is a Kotlin Multiplatform XML library that provides three layers: a streaming pull-parser/writer abstraction (XmlReader/XmlWriter with a pure-Kotlin KtXmlReader and platform StAX/Android backends), a portable DOM Level 2 implementation with JVM/JS/Native/Wasm wrappers, and an XML serialization format for kotlinx.serialization (the XML.v1 codec with annotations such as @XmlSerialName, @XmlValue, @XmlPolyChildren and policy-based configuration). It is a library, not an application: there are no servers or CLIs, only published Maven artifacts (core, serialization, xmlschema, serialutil, testutil) plus examples, benchmarks, and a Gradle plugin used for building/publishing the library itself. It targets JVM, Android (deprecated module), JS, Native, and Wasm. The architecture is strictly modular: core/base holds platform-independent streaming, DOM, namespaces, and entity handling; core/jdk and core/android are platform backends; serialization implements the kotlinx.serialization format including type/descriptor caching, polymorphic parent handling, and compact-fragment support; xmlschema is a near-complete XML Schema 1.0/1.1 parser/resolver with a custom XPath expression engine and a purpose-built regex engine for XSD pattern facets; serialization-io and core/kxio bridge kotlinx-io sinks/sources; testutil ships cross-platform XML assertion helpers. The dominant data flow is: XML text -> streaming events (XmlReader) -> DOM or direct object deserialization, and the reverse for output, with XmlSerializationPolicy controlling naming, lists, maps, namespaces, and encoding/decoding behavior. The engineering depth is genuinely high: a hand-written XSD regex engine with Unicode decomposition and surrogate set classes, flat-array namespace stacks with O(1) depth operations, DTD/entity expansion logic, an LRU format cache with recursion detection, and binary-compatibility validation (API and klib .api files) on every build. Test coverage is extensive, including regression tests for dozens of numbered GitHub issues, a W3C XML Schema test-suite harness, and JVM benchmarks. The main weaknesses are an intentionally large experimental API surface (@ExperimentalXmlUtilApi), some boilerplate near-duplication in schema facet classes, and platform-source-set sprawl that multiplies maintenance cost. Maintenance is active: recent commits (Aug 2026), GitHub Actions CI (runTests, publish-snapshot, upload_release), zero Dependabot alerts, and modern tooling (Gradle version catalog, BOM, Gradle wrapper validation). Some legacy artifacts remain (stale .travis.yml, deprecated core-android and xmlserializable modules), but they are explicitly marked deprecated rather than silently rotting. Technical drift is low; the codebase deliberately tracks fast-moving kotlinx.serialization APIs and documents Kotlin compiler workarounds, indicating a maintained rather than abandoned project.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
antchfx/xmlquery ★ 488 95 APPLICATION

xmlquery is a Go library for querying XML documents using XPath expressions. It provides functions to parse XML from various sources (string, file, URL, etc.), execute XPath queries, and manipulate the resulting node tree. The library features a caching mechanism for compiled XPath expressions to improve query performance and supports streaming parsing for large XML files to minimize memory usage. The architecture is modular, with separate concerns for parsing, querying, and node manipulation, and it relies on external dependencies for XPath expression handling and LRU caching.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
unrolled/render ★ 1998 151 APPLICATION

Render is a Go library that provides a flexible rendering layer for web applications, supporting multiple output formats including JSON, XML, HTML, text, and binary data. It abstracts away the complexities of marshaling data, setting appropriate content types and headers, and executing HTML templates with support for layouts, partials, and custom template functions. The library is designed to work with any Go web framework by accepting an http.ResponseWriter. The architecture centers around a Render struct that holds configuration and compiled templates, with different renderer types (JSON, XML, HTML, etc.) implementing a common Engine interface. Notable features include automatic template recompilation in development mode, buffer pooling for efficient HTML rendering, streaming JSON output options, and a lock-free implementation by default with optional mutex locking for thread safety. The library also provides filesystem abstraction to support loading templates from disk, embedded files, or custom asset functions.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
onmyway133/Snowflake ★ 967 54 APPLICATION

Snowflake is an SVG rendering library for iOS/macOS that parses SVG XML data and renders it using native CALayer and UIBezierPath. The architecture follows a modular design with separate components for document parsing, SVG element handling, style interpretation, path parsing, and utility functions. Key entry points are Document.init(data:) for parsing SVG data and SVG.view(size:) or SVG.layers(size:) for rendering. The library transforms SVG elements into shape objects that create UIBezierPath instances, which are then converted to styled CAShapeLayer objects for display. It supports inline styling, CSS-style attributes, animations, scaling, and base64-embedded images.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
LikeTheSalad/android-stem ★ 198 12 APPLICATION

Android Stem is a Gradle plugin that resolves placeholders in Android XML string resource files at compile time. It scans `res/values/` directories (and library dependencies) for strings containing placeholders like `${app_name}`, then replaces them with actual values defined in other strings. The plugin supports multi-language (`values-es/`, `values-fr/`), multi-flavor (product flavors), and recursive template resolution with circular dependency detection. It integrates with the Android Gradle Plugin (AGP) variant API, registering three cacheable tasks per build variant: `RawStringCollector` (collects all string resources into a protobuf binary), `GatherStringTemplates` (identifies templates and their values, outputting JSON), and `ResolvePlaceholders` (performs the actual placeholder substitution and writes resolved XML files to `build/generated/stem/`). The plugin is configured via an `androidStem` block in `build.gradle.kts`, allowing customization of placeholder delimiters and localized-only template inclusion. It is published on the Gradle Plugin Portal and has a comprehensive test suite covering unit, integration, and concurrency scenarios.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
focus-creative-games/luban ★ 4560 732 APPLICATION

Luban is a game configuration solution that transforms structured data (Excel, JSON, YAML, Lua, XML, etc.) into strongly-typed code and serialized data for multiple target languages (C#, Java, Go, C++, Rust, Python, TypeScript, Lua, etc.) and data formats (binary, JSON, protobuf, flatbuffers, msgpack, BSON, etc.). It is implemented as a .NET 8 console application with a plugin-based pipeline architecture: schema loading → data loading → validation → code generation → data export. The core engine (Luban.Core) provides extensible interfaces for custom loaders, validators, code targets, and data targets, all discovered via assembly attributes. Code generation uses Scriban templates with language-specific extensions, and data serialization employs a custom compact binary protocol (ByteBuf). The tool is widely used in game development for managing configuration data across engines like Unity, Unreal, Godot, and Cocos.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
jest-community/jest-junit ★ 502 118 APPLICATION

jest-junit is a Jest reporter that transforms test results into JUnit-compatible XML files, commonly used in CI/CD pipelines for integration with tools like Jenkins, CircleCI, and GitLab CI. The codebase is a small, focused Node.js library with a clear architecture: an entry point that supports both the modern reporter API and the deprecated testResultsProcessor, a configuration resolver that merges settings from environment variables, package.json, and reporter options, and a core transformation module (`buildJsonResults`) that converts Jest's aggregated result objects into a structured JSON representation directly mappable to JUnit XML via the `xml` package. It handles template variables for test suite names, class names, and test titles, supports custom properties via external JS files, and manages edge cases like test compilation errors, empty suites, console output inclusion, and retried tests. The code is well-tested with Jest and includes XML schema validation. While the library is not architecturally groundbreaking, it is cleanly modular, follows Node.js best practices, and its configuration and transformation patterns could be reused in other test report generators.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 2 reusable components found
Ludeon/RimWorld-ru ★ 201 116 APPLICATION

This repository is the official Russian localization pack for the colony-sim game RimWorld, covering the base game (Core) and all major DLCs (Royalty, Ideology, Biotech, Anomaly) plus the third-party Odyssey content mod. It is predominantly a data repository: roughly 1,780 XML files in RimWorld's standard DefInjected/Keyed layout, where each entry overrides an English game string with a Russian translation and preserves the English source as an inline comment. The pack is the canonical Russian translation distributed with game updates, making it a hybrid asset — mostly localization data with a thin application layer of tooling and grammar code. The application layer is thin but purposeful. LanguageWorker_Russian.cs implements RimWorld's language-worker interface with Russian-specific grammar handling — pluralization (three plural forms), gender agreement, and case inflection backed by WordInfo data files. A GitHub Actions pipeline of eight Python scripts validates XML well-formedness, UTF-8/BOM encoding, dash formatting, gender-macro consistency, and reportString punctuation on every push, catching the class of copy-paste errors that plague large translation corpora. The translation data itself uses RimWorld's macro system ({PAWN_gender}, {lookup:...Case;...}) to produce grammatically correct Russian in dynamic game contexts, including procedural name generation via RulePackDef translations. The repository is actively maintained (last commit 2026-09-13) and tracks current game versions including the Anomaly DLC. Its most reusable assets are the CI validation scripts — encoding, XML, and gender-consistency checks applicable to any localization project — and the Russian grammar logic in the language worker. The XML corpus is project-specific but demonstrates a disciplined pattern for large-scale Slavic localization. Known weaknesses include occasional translation inconsistencies (e.g., copy-paste errors in drug-tolerance stage labels where 'large' is translated as 'medium') and the maintenance burden of tracking rapid game updates across six content areas.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Taritsyn/WebMarkupMin ★ 497 46 APPLICATION

WebMarkupMin is a comprehensive .NET library for minifying HTML, XHTML, XML, CSS, and JavaScript markup to optimize web application performance. It provides a core minification engine with parsers and output writers, plus extensive integration with ASP.NET (both classic .NET Framework and .NET Core/5+) through middleware, HTTP modules, MVC action filters, and WebForms base page classes. The library supports multiple minifier backends: built-in Crockford JS and Kristensen CSS minifiers, plus wrappers for Microsoft Ajax Minifier, YUI Compressor, and NUglify. It also includes compression support for GZip, Deflate, and Brotli. The architecture is modular, with clear interfaces (IMarkupMinifier, ICssMinifier, IJsMinifier, ICompressor) and factory patterns, enabling pluggable backends and easy extension. Configuration is exposed via strongly-typed settings classes. The codebase is well-tested with hundreds of unit tests covering edge cases in markup parsing, whitespace handling, attribute optimization, and framework-specific features (Angular, Knockout, Blazor). The repository is primarily a library (not a standalone application), and its samples demonstrate integration with various ASP.NET versions.

RATING: 7.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
koodo-reader/koodo-reader ★ 28464 2136 APPLICATION

Koodo Reader is a cross-platform ebook reader application supporting a wide range of formats (EPUB, PDF, MOBI, AZW3, TXT, FB2, CBR/CBZ, MD, DOCX, HTML, etc.). It is built as an Electron desktop app with a React/TypeScript frontend and a separate Go HTTP server for OPDS catalog serving and KOReader sync. The application provides a full-featured reading experience including bookmarks, notes, highlights, text-to-speech (with multiple voice engines), translation and dictionary lookup (via built-in and custom plugins), OCR for scanned PDFs, and cloud sync/backup across many providers (WebDAV, S3, OneDrive, Google Drive, Dropbox, etc.). It also includes a library management system with shelves, tags, search, and import from local files, folders, URLs, and OPDS catalogs. The architecture is a monolith with a clear separation between the Electron main process (Node.js) and the renderer (React), plus an optional Go server for network-facing features. The codebase is large and feature-rich but shows signs of technical debt: widespread use of deprecated React lifecycle methods, heavy reliance on opaque minified libraries (kookit-extra), frequent `as any` type casts, and mixed Chinese/English comments. Despite these issues, the application is actively maintained and offers a robust set of features for ebook enthusiasts.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
justinwilaby/sax-wasm ★ 199 12 APPLICATION

sax-wasm is a high-performance SAX-style XML/HTML/JSX parser written in Rust and compiled to WebAssembly, with JavaScript/TypeScript bindings for Node.js and browsers. It provides streaming parsing of byte streams, emitting events for tags, attributes, text nodes, processing instructions, comments, CDATA, and doctype declarations. The parser is non-validating and focuses on raw speed, using SIMD instructions and optimized grapheme cluster handling. It includes a comprehensive TypeScript API with async generator support for streaming reads from ReadableStream. The repository contains the full Rust source, JS/TS bindings, build tooling (wasm-bindgen, wasm-opt), and extensive test suites covering XML, JSX, Angular templates, edge cases with multi-byte characters, and write-boundary splitting. While the parser is highly optimized and well-tested, the project appears to be in a stale maintenance state with no recent commits (last commit dated 2026-09-13, likely erroneous) and a small community following.

RATING: 7.5/10 MAINT: stale DRIFT: low
▸ 3 reusable components found
blongden/hal ★ 201 43 APPLICATION

This repository is a PHP library for creating and parsing HAL (Hypertext Application Language) documents in JSON and XML formats. It provides a fluent API to build HAL resources with links, embedded resources, and data, and render them to HAL+JSON or HAL+XML. The library also includes factories to parse HAL documents back into PHP objects. The architecture centers around the Hal class as the main resource representation, with separate renderers for JSON and XML, and link/resource containers. Key entry points are the Hal constructor, static fromJson/fromXml methods, and rendering methods asJson/asXml. The library has no external dependencies beyond PSR Link and PHP 8.2+, and is actively maintained with CI testing across multiple PHP versions.

RATING: 7.2/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
Leonidas-from-XIV/node-xml2js ★ 4966 602 APPLICATION

node-xml2js is a mature, well-tested Node.js library for bidirectional conversion between XML and JavaScript objects. It uses sax-js for parsing and xmlbuilder-js for building, providing a simple callback or Promise-based API. The library supports extensive configuration options including attribute and tag name processors, value processors, namespace handling, CDATA, and various output formatting. The source code is written in CoffeeScript (compiled to JavaScript), which is now a deprecated language, and the dependencies are outdated (sax >=0.6.0, xmlbuilder ~11.0.0). While the library is functionally complete and has been widely used (over 4900 stars), it has not seen active development in years, and the CoffeeScript source presents a barrier for modern contributions. The codebase is well-structured with clear separation of concerns, but the technical drift is high due to the use of deprecated tools and outdated dependency versions.

RATING: 6.9/10 MAINT: stale DRIFT: high
▸ 2 reusable components found
── end of results ──
$ submit: