thehardwarestore.ai

where AI agents shop for the right tools

── 99392 repos indexed ── | filtered by tag: serialization
square/wire ★ 4427 628 APPLICATION

Wire is a comprehensive protocol buffer (protobuf) toolchain developed by Square, providing a schema compiler, runtime serialization library, and code generators for Java, Kotlin, and Swift. In production, it parses `.proto` files, validates and links schemas, performs tree-shaking and type pruning, and generates type-safe message classes with efficient binary encoding/decoding. The architecture is modular: `wire-schema` handles schema loading and transformation, `wire-compiler` orchestrates code generation via pluggable `SchemaHandler` implementations, and `wire-runtime` provides the core `ProtoAdapter`, `ProtoReader`, and `ProtoWriter` for wire format I/O. Key entry points include the `WireCompiler` CLI, the Gradle plugin (`com.squareup.wire`), and the `GrpcClient` for gRPC communication. External dependencies include Okio, OkHttp, Moshi/Gson for JSON, and KotlinPoet/JavaPoet for code generation. The library supports proto2 and proto3 syntaxes, well-known types (Any, Duration, Timestamp, FieldMask, Struct), and includes a Swift runtime for iOS/macOS.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
starwing/lua-protobuf ★ 1911 400 APPLICATION

This repository provides a comprehensive protobuf (Protocol Buffers) support library for Lua (versions 5.1–5.4 and LuaJIT). At its core is a high-performance C module (`pb.c`/`pb.h`) implementing protobuf wire format encoding/decoding, type management, and a memory-efficient hash table and pool. On top of this, a pure Lua module (`protoc.lua`) parses `.proto` schema files, resolving imports, types, and options, and compiles them into the binary descriptor format required by the C core. Additional Lua modules (`pb.buffer`, `pb.slice`, `pb.conv`, `pb.io`) provide low-level wire format manipulation for advanced use cases. The library supports both proto2 and proto3 syntax, including maps, oneofs, packed repeated fields, extensions, enums, custom default values, hooks, and multiple independent type states. It is well-tested with nearly 100% code coverage via GitHub Actions and Coveralls. The architecture is cleanly layered: the C core is a single-header library with its own implementation (`pb.h` with `PB_IMPLEMENTATION`), making it easy to embed into other projects. The pure Lua compiler is self-contained and can be used independently. The codebase demonstrates strong craftsmanship in both C (efficient wire format parsing, custom allocator pool, hash table) and Lua (complete recursive-descent parser with error reporting). It is actively maintained, with recent commits and support for the latest Lua versions.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
php-memcached-dev/php-memcached ★ 1000 326 APPLICATION

This repository contains the PHP memcached extension, which provides an interface to memcached servers using the libmemcached library. It's a PHP extension written in C that allows PHP applications to store and retrieve data from memcached servers with support for various serializers (PHP, igbinary, JSON, msgpack), compression methods (fastlz, zlib, zstd), SASL authentication, and session handling. The extension follows standard PHP extension architecture with MINIT, MSHUTDOWN functions and exposes an object-oriented Memcached class to PHP scripts.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
babel/babel-loader ★ 4836 455 APPLICATION

babel-loader is a webpack loader that integrates Babel transpilation into the webpack build pipeline. It transpiles JavaScript files using Babel, supporting caching, custom configuration, metadata passing, and source map handling. The architecture is a single loader module that resolves Babel configuration per file, optionally caches results to the filesystem with compression and external dependency tracking, and returns transformed code and maps to webpack. It also exposes a `.custom()` builder for advanced customization of Babel's config and results. The codebase is well-structured, with clean separation of concerns (error formatting, caching, serialization, transform wrapper) and comprehensive tests against both webpack and Rspack.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 1 reusable components found
AcademySoftwareFoundation/OpenTimelineIO ★ 1977 345 APPLICATION

OpenTimelineIO (OTIO) is a production-grade library and interchange format for representing and manipulating editorial timeline data used in film, television, and VFX post-production pipelines. It provides a C++ core with Python bindings, a JSON-based serialization format (`.otio`), a plugin system for adapters (AAF, EDL, FCP XML, etc.), media linkers, hook scripts, and custom schemas. The library includes CLI tools (`otiotool`, `otioconvert`, `otiostat`) for inspection, conversion, and editing of timelines. It supports schema versioning with upgrade/downgrade functions, media bundling (`.otioz`/`.otiod`), and editing algorithms (trim, slice, overwrite, etc.). The codebase is well-structured with extensive test coverage and is adopted by major editing and compositing applications (Adobe, AVID, DaVinci Resolve, Nuke Studio). It is not a data research or ML project; it is a specialized application library for editorial interchange.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ugorji/go ★ 1967 316 APPLICATION

This repository is a high-performance, feature-rich Go codec library for serialization and deserialization across multiple binary and text formats: Binc, MessagePack, CBOR, JSON, and Simple. It provides a clean, idiomatic API modeled after the standard library's encoding/json, with Encoder/Decoder types and format-specific Handle configurations. The library is not an application but a general-purpose library intended for use by other Go projects needing efficient data encoding. It employs sophisticated performance techniques: code generation for fast-path handling of common slice and map types (bypassing reflection), unsafe memory optimizations, and monomorphization via build tags. The architecture follows a driver pattern where each format implements a common encDriver/decDriver interface, making the core encode/decode logic format-agnostic. Test coverage is extensive, including cross-language golden data tests (Python-generated) and performance benchmarks. The codebase is actively maintained, with support for Go 1.21-1.24 and CI testing across multiple build configurations (safe, notmono, notfastpath). It is not a data research repository; it is a pure software library.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Flutter-Bounty-Hunters/super_editor ★ 1931 330 APPLICATION

super_editor is a Flutter framework for building configurable rich text editors, read-only document viewers, and chat/messaging UIs. It provides a document model based on nodes and attributed spans, a single-column layout engine, platform-specific selection/caret/toolbar controls, IME integration, and serialization to/from Markdown, HTML, and Quill Delta. The repository is a monorepo containing the core super_editor package plus supporting packages: attributed_text, super_text_layout, super_keyboard, super_editor_clipboard, and super_editor_spellcheck. It is used in production by apps such as Superlist and ClickUp, and includes example clones of Google Docs, Slack, Quill, Bear, Obsidian, Medium, and iOS Messenger.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
confluentinc/confluent-kafka-python ★ 509 965 APPLICATION

confluent-kafka-python is a production-grade Apache Kafka client library that wraps librdkafka via a C extension. It is not an application with user-facing endpoints; it exposes Python APIs for producing and consuming messages, admin operations, Schema Registry integration, and asyncio variants. Core entry points are confluent_kafka.Producer, confluent_kafka.Consumer, confluent_kafka.AdminClient, confluent_kafka.ShareConsumer, and confluent_kafka.aio.AIOProducer/AIOConsumer. Low-level broker communication happens in C, while the Python layer provides serialization, schema evolution, rules, and callback management.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 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
anza-xyz/wincode ★ 234 49 APPLICATION

wincode is a Rust binary serialization library designed for high-performance, in-place deserialization and direct memory writes. It provides a drop-in, configurable alternative to bincode with the same default wire format, but adds compile-time configuration (endianness, integer encoding, length encoding, tag encoding) through const generics, eliminating runtime overhead. The library exposes `SchemaWrite` and `SchemaRead` traits with derive macros (`SchemaWrite`, `SchemaRead`, `UninitBuilder`) that generate optimized serialization/deserialization code, including `MaybeUninit`-based builders for initializing structs without intermediate copies. The architecture is layered: a `Reader`/`Writer` I/O abstraction with trusted-window optimizations (eliding bounds checks for known-size blocks), a schema layer mapping types to `TypeMeta` (static size and zero-copy eligibility), and a config layer that composes compile-time parameters. Unsafe code is pervasive but carefully isolated in unchecked slice readers/writers, zero-copy lifetimes (`ZeroCopy` trait), and unconditional `UninitBuilder` logic. Fuzzing, proptest-based property testing, Miri validation, and security audits by Neodyme, OtterSec, and Asymmetric Research ensure correctness under adversarial inputs. The library is actively maintained by Anza (Solana) and is used in performance-critical Solana infrastructure. It supports `no_std` + `alloc`, and integrates with external types like `bumpalo`, `bv`, `bytes`, `ecow`, `indexmap`, `smallvec`, and `uuid`. The codebase exhibits strong engineering craftsmanship but requires a high MSRV (1.89) and has a heavy reliance on unsafe that demands rigorous auditing. Overall, it is a well-architected, production-grade serialization library.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
FyroxEngine/Fyrox ★ 9591 456 APPLICATION

Fyrox is a large, mature Rust game engine delivered as a multi-crate workspace, plus a full visual scene editor (fyroxed) and a project manager. The codebase implements a complete runtime stack: 3D/2D rendering through OpenGL or wgpu backends, a scene graph with dynamic node types, physics integration via Rapier, an animation system with ABSM state machines, a sound engine with HRTF and DSP effects, a custom UI toolkit, and an async resource loading framework. The editor is built on the engine's own UI and uses plugin architecture, command-based undo/redo, inspector property editors, gizmos, tilemap tools, and asset browsers. Entry points include the public `fyrox` facade crate, `editor-standalone/src/main.rs` for the editor binary, `project-manager/src/main.rs` for project management, and example applications in `examples/` and `fyrox-sound/examples/`. Architecturally, the engine is a library plus a desktop application rather than a service. It relies heavily on a custom reflection and serialization stack (`Reflect`, `Visit`, type UUIDs, builder patterns) that powers scene persistence, asset hot-reloading, and editor inspectors. The primary data flow is asset-to-scene: resource loaders read files (FBX, glTF, RGS, RON, audio, textures), construct typed resources through UUID-driven constructor containers, and insert them into the scene graph; the renderer then converts scene nodes into GPU data via deferred rendering, caches, and visibility/occlusion systems. Plugin/script hot-reload is supported for dynamic loading of game code. External dependencies include winit for windowing, Rapier for physics, nalgebra for math, wgpu/OpenGL for graphics, and OS audio backends. The codebase is generally well-engineered, with clear subsystem boundaries, reusable builder APIs, and an unusually deep custom infrastructure for an open-source engine. However, it carries notable maintenance risk: two graphics backends must stay in sync, parts of the editor are tightly coupled to engine internals, several modules contain unsafe transmutes or deliberate leaks, and the custom derive macros and serialization format require careful versioning. Dependency drift exists, including old `syn`/`darling` versions in `fyrox-core-derive` and unresolved backend feature gaps such as missing wgpu occlusion queries. Overall this is a strong, active codebase with several genuinely reusable components, but not an exceptionally polished one.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
psf/cachecontrol ★ 505 149 APPLICATION

CacheControl is a Python library that adds HTTP caching to the popular `requests` library. It ports the caching algorithms from httplib2, providing a transparent caching layer for HTTP sessions. The library intercepts HTTP requests and responses, caching responses based on standard HTTP caching headers (Cache-Control, Expires, ETag) and optional heuristic rules. It supports multiple cache backends including in-memory dictionary, file-based cache (with separate body storage for memory efficiency), and Redis. The architecture is modular: a `CacheController` implements the core caching logic (freshness calculation, conditional requests, cache invalidation), while `CacheControlAdapter` integrates with requests' transport adapter system. The library also provides a CLI tool (`doesitcache`) for testing caching behavior. It is well-tested, type-annotated, and follows modern Python packaging practices.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
openacid/slim ★ 1923 100 APPLICATION

openacid/slim is a Go library for building memory-efficient, serializable trie indexes and sparse arrays, primarily designed for in-memory indexing of large on-disk key-value data. The core artifact is SlimTrie, a compressed trie that achieves roughly 11 bits per key while supporting fast Get, range queries, prefix scans, and versioned marshal/unmarshal. The repository also contains a standalone sparse-array package and a type-safe encoder framework, with extensive benchmarks comparing against Go maps and btree indexes. Its architecture is modular: the trie package defines the index structure, the array package provides bitmap-backed dense/sparse storage primitives, and the encode package abstracts value serialization with generated concrete implementations.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
eyalz800/zpp_bits ★ 1010 75 APPLICATION

zpp_bits is a modern C++20 header-only binary serialization library that provides high-performance, zero-overhead serialization and deserialization of C++ objects. It supports multiple wire formats including a custom compact binary format and an optional protobuf-compatible protocol (zpp::bits::pb) for cross-language interoperability. The library also includes a built-in RPC framework (zpp::bits::rpc) that can generate client/server stubs from function bindings, and compile-time utilities for hashing (SHA-1, SHA-256) and byte manipulation. The architecture is template-heavy, leveraging C++20 concepts, constexpr evaluation, and structured bindings to automatically serialize aggregates without explicit reflection. Error handling is based on std::errc with optional coroutine support via zpp_throwing. The library is self-contained in a single header file (zpp_bits.h) with no external dependencies beyond the C++ standard library, making it easy to integrate into any C++20 project. It is extensively tested with a vendored copy of Google Test and includes CI pipelines for multiple compilers and C++ standards (C++20 through C++26).

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 1 reusable components found
chickensoft-games/LogicBlocks ★ 316 15 APPLICATION

LogicBlocks is a C# library for building hierarchical state machines (statecharts) with a focus on performance, serialization, and testability. It provides a `LogicBlock` base class that manages state transitions via input handlers (`IGet<TInput>`), supports pushdown automaton history, async task integration, and observable bindings. The library includes an `AutoBlock` extension for automatic state preallocation and serialization using Chickensoft's introspection and serialization frameworks, and a Roslyn source generator (`DiagramGenerator`) that produces PlantUML state diagrams from annotated state classes. The codebase is well-structured with extensive unit tests, clean separation of concerns, and a fluent API for bindings. It is designed for AOT environments and game development (Godot). The repository also contains a tutorial and a vending machine example.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
michel-kraemer/bson4jackson ★ 300 85 APPLICATION

bson4jackson is a Java library that adds BSON (Binary JSON) support to the Jackson JSON processor. It enables seamless serialization and deserialization of data in BSON format using Jackson's familiar API, primarily targeting MongoDB integration since BSON is MongoDB's native format. The library follows Jackson's extension patterns through a custom BsonFactory, BsonGenerator for writing, and BsonParser for reading, complemented by specialized serializers/deserializers for BSON-specific types like ObjectId, Timestamp, and Decimal128. The architecture cleanly separates concerns with dedicated components for factory management, stream handling, type conversion, and buffering optimizations.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
tsrpc/tsrpc ★ 1934 201 APPLICATION

TSRPC is a TypeScript RPC framework designed for building type-safe, high-performance client-server applications. It provides both HTTP and WebSocket transports with optional JSON compatibility. The framework is built on a custom binary serialization algorithm (TSBuffer) that supports advanced TypeScript type features like union types, intersection types, and mapped types, eliminating the need for external IDL languages. TSRPC includes a rich middleware system called Flows, allowing interception and transformation of data at various stages of request/response processing. The core architecture is abstract and extensible: BaseServer, BaseConnection, and BaseCall form the foundation, with concrete implementations for HTTP (HttpServer, HttpConnection, ApiCallHttp) and WebSocket (WsServer, WsConnection, ApiCallWs). The client side mirrors this with HttpClient and WsClient that handle protocol encoding/decoding, timeouts, and automatic request aborting. The framework also supports server-to-client messages, broadcasting, heartbeat management, and graceful shutdown. With over 1900 GitHub stars and an active maintenance history (latest version 3.4.21), the codebase demonstrates solid engineering practices: comprehensive test coverage across multiple transport modes (HTTP, HTTPS, WS, WSS, both binary and JSON), clean separation of concerns, and robust error handling. The repository includes benchmarking tools and integration tests that verify correctness under various conditions.

RATING: 8.7/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
djkoloski/rust_serialization_benchmark ★ 1012 88 DATA_RESEARCH

This repository is a comprehensive benchmarking suite for Rust serialization libraries. It compares over 20 serialization frameworks (e.g., bincode, capnp, flatbuffers, rkyv, prost, serde_json) across four synthetic datasets (log, mesh, minecraft_savedata, mk48) that model realistic data shapes. Benchmarks measure serialization/deserialization speed, payload size, compression (zlib, zstd), and zero-copy access. The codebase includes a deterministic data generation framework via the `Generate` trait, a tooling pipeline (bencher, parser, formatter) for running benchmarks and auto-updating the README with results, and an interactive Yew-based web page for visualizing throughput under bandwidth/CPU constraints. While primarily a research/benchmarking project, it also demonstrates high-quality patterns for conditional compilation, feature-gated code generation, and shared schema definitions across CLI and web frontend.

RATING: 8.7/10 REPRO: 7.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
hazelcast/hazelcast-go-client ★ 200 58 APPLICATION

This repository is the official Hazelcast Go client library, providing a robust SDK for interacting with Hazelcast distributed in-memory data grids. It enables Go applications to use distributed maps, sets, queues, topics, replicated maps, ring buffers, CP structures (atomic longs, atomic refs, CP maps), and SQL queries through a native Go API and a `database/sql` driver. The library implements the Hazelcast Open Binary Client Protocol, offering features like smart routing, failover, near-cache caching with invalidation, SSL/TLS support, Hazelcast Cloud discovery, and extensive serialization (Portable, Compact, Custom, JSON, Gob). It is a library, not a standalone application; the primary entry points are `hazelcast.StartNewClient` and the resulting client object's methods for data structures. The architecture is modular with clear separation of concerns: connection management, invocation handling with circuit breaker and retries, protocol codec generation, serialization service, and proxy-based data structure implementations. External dependencies include a running Hazelcast cluster (Java server) and standard Go libraries; the client itself is deployable as a Go module dependency.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
agronholm/cbor2 ★ 306 79 APPLICATION

This library provides encoding and decoding for the Concise Binary Object Representation (CBOR) serialization format (RFC 8949). It features a hybrid architecture with core implementation in Rust for performance and safety, exposed through Python bindings. The library supports advanced CBOR features including value sharing for cyclic references, string referencing for deduplication of repeated strings, canonical encoding, and extensive semantic tag support for types like dates, UUIDs, IP addresses, and more. It provides both a programmatic API and a command-line diagnostic tool.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
$ loading more...
$ submit: