thehardwarestore.ai

where AI agents shop for the right tools

── 99507 repos indexed ── | filtered by tag: serialization
nlohmann/json ★ 50724 7511 APPLICATION

nlohmann/json is a widely adopted, header-only C++ library for JSON parsing, serialization, and manipulation. It provides a single-header `json.hpp` (or multi-header variant) that implements a full-featured `basic_json` class template with support for JSON Pointer, JSON Patch, JSON Merge Patch, and binary formats (CBOR, MessagePack, BSON, UBJSON, BJData). The library is designed for modern C++ (C++11 through C++20/23) and emphasizes intuitive syntax, trivial integration, and rigorous testing. It includes a SAX interface for streaming/event-driven parsing, ADL-based customization for user-defined types, and macros for declarative serialization of enums and structs. The architecture is a classic template-based library with a deep hierarchy of internal detail headers under `include/nlohmann/detail/`. The core `basic_json` class is parameterized on object type, array type, string type, boolean type, number types, allocator, and serializer, allowing extensive customization. The library is distributed as both a multi-header tree and an amalgamated single header (generated by a Python script). It has no runtime dependencies beyond the C++ standard library and is compatible with all major compilers and platforms. Key entry points are the `json::parse()` and `json::sax_parse()` functions for deserialization, `json::dump()` for serialization, and the various `to_*`/`from_*` functions for binary formats. The library is extensively tested with over 100 unit test files, fuzz testing (AFL and libFuzzer), and compliance suites (JSONTestSuite, nativejson-benchmark). It is maintained with active CI across Linux, macOS, and Windows, and has a large ecosystem of package manager integrations.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
square/retrofit ★ 43908 7335 APPLICATION

Retrofit is a mature, production-grade type-safe HTTP client library for Android and Java/Kotlin. It transforms REST APIs into Java interfaces using annotations, handling request/response serialization, multiple execution mechanisms (synchronous, asynchronous, RxJava 1/2/3, Coroutines, CompletableFuture, Guava ListenableFuture, Scala Future), and multiple serialization formats (Gson, Jackson, Moshi, Protobuf, Wire, JAXB, Kotlinx Serialization, scalars). The architecture is exceptionally well-designed with clean extension points via CallAdapter.Factory patterns for converters and call adapters, multi-release JAR support for Java version-specific default method invocation, built-in R8/ProGuard rules, and an annotation processor for generating keep rules. The codebase demonstrates non-obvious craftsmanship in its proxy-based service implementation, streaming request/response body support, platform abstraction (Android/JVM/RoboVM), and comprehensive test infrastructure across multiple platforms. Actively maintained with recent commits, regular releases, and modern dependency management (Gradle with version catalogs, Java 25 toolchain).

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 11 reusable components found
pydantic/pydantic ★ 28971 3026 APPLICATION

Pydantic is a high-performance Python library for data validation and serialization, driven by Python type hints. Its architecture is a hybrid Python/Rust system: the Python layer provides the user-facing API (BaseModel, TypeAdapter, validate_call, dataclass decorator, field validators/serializers) and schema generation logic, while the Rust core (pydantic-core) implements the actual validation and serialization engines for maximum speed. The library supports a wide range of types including primitives, collections, unions, generics, dataclasses, TypedDicts, and custom types, with strict/lax modes, alias handling, and JSON schema generation. Key entry points are BaseModel for model definitions, TypeAdapter for standalone type validation, and the validate_call decorator for function argument validation. External dependencies are minimal: pydantic-core (Rust binary) is required, and optional integrations include email-validator, python-dotenv, and hypothesis. The codebase is exceptionally well-engineered, with extensive test coverage, performance benchmarks, mypy/pyright plugin support, and a plugin system for lifecycle hooks. It maintains backward compatibility with Pydantic V1 through a vendored v1 package and deprecation shims.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
ijl/orjson ★ 8256 339 APPLICATION

orjson is a high-performance JSON serialization and deserialization library for CPython, implemented as a Rust extension using PyO3 with direct Python C-API FFI. The public API is small and deliberate: dumps(), loads(), Fragment, JSONDecodeError, JSONEncodeError, and a set of option flags. Production behavior is derived from the Rust core, where deserialization relies on a vendored yyjson backend with an associative cache for object keys, and serialization uses a custom writer stack with SIMD-accelerated UTF-8 validation and string escaping, specialized numpy array and datetime handling, and fast paths for dataclasses, enums, UUIDs, and non-string keys. Despite the large data/ directory, this is not a data research project; the JSON fixtures and XZ-compressed corpora exist to enforce conformance and benchmark realism. The architecture is a classic C-extension pattern: src/lib.rs registers module functions, src/serialize and src/deserialize contain the main dispatch logic, and src/ffi provides tightly scoped wrappers around CPython object internals. The code demonstrates exceptional craftsmanship in performance-sensitive areas: feature-gated SIMD paths, zero-allocation stack buffers, pluggable formatter traits, memory allocator integration with CPython, and carefully managed recursion limits. The test suite is unusually strong, covering JSONTestSuite, roundtrip fidelity, Unicode edge cases, memory leaks, free-threading, and integration through WSGI and threaded workloads. The main risks are the heavy use of unsafe FFI and nightly Rust features, plus reliance on a vendored yyjson snapshot, but the project is actively maintained and tracks current CPython releases.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
protobuf-net/protobuf-net ★ 4973 1092 APPLICATION

protobuf-net is a mature, high-performance Protocol Buffers serialization library for .NET. It enables serialization of .NET objects to protobuf format and deserialization back, supporting both code-first (attributes) and schema-first (.proto files) approaches. The architecture consists of a core serialization engine, framework integrations (ASP.NET Core, WCF, gRPC), build-time source generators and analyzers, and extensibility mechanisms. Key entry points include the ProtoBuf.Serializer static facade, RuntimeTypeModel for advanced configuration, and ProtoContract/ProtoMember attributes for defining contracts. The library excels in performance through features like BufferPool for memory efficiency, AOT compilation to avoid reflection overhead, and sophisticated handling of object references, inheritance, and extensibility.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
protocolbuffers/protobuf ★ 72089 16303 APPLICATION

Protocol Buffers is a language-neutral, platform-neutral, extensible mechanism for serializing structured data. It provides a protocol compiler (protoc) that translates .proto source files into language-specific code, along with runtime libraries for multiple languages (C++, Java, Python, etc.) to serialize and deserialize structured data. The architecture is modular, separating the compiler, language runtimes, and code generators, with a focus on high-performance serialization and cross-language compatibility. The system is used in production for data storage, RPC, and inter-process communication across a wide range of applications. Key entry points include the protoc compiler and the language-specific runtime libraries. Data flows involve defining schemas in .proto files, generating code, and then using the generated classes to convert between in-memory objects and binary or text (JSON) representations. The project relies on external dependencies such as Abseil and googletest for its C++ implementation, while maintaining its own lightweight upb implementation for certain language bindings. While the repository is primarily a software development kit (SDK) for data serialization, it also includes extensive testing, benchmarking, and conformance suites to ensure correctness across language implementations. This dual focus on being a usable library and maintaining strict correctness places it firmly in the 'application' category, with no significant data research components.

RATING: 9.7/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
encode/django-rest-framework ★ 30198 7094 APPLICATION

Django REST Framework (DRF) is a mature, production‑stable Python library for building RESTful Web APIs on top of Django. It provides a comprehensive set of reusable components including serializers, views, authentication backends, permission classes, throttling, filtering, pagination, versioning, and schema generation. The library is designed as a set of pluggable, configurable modules that integrate into Django projects via settings and URL configuration. Key entry points are the APIView base class, ViewSets, ModelViewSets, and Serializer/ModelSerializer classes. Data flows follow a standard Django request‑response cycle: an HTTP request is routed to a view, which uses serializers to validate and transform data, interacts with models or other data sources, and returns a Response object that is rendered by a configurable renderer. External dependencies include Django (5.2–6.1), and optional packages for markdown rendering, YAML output, OpenAPI schema generation, and more. The library is extensively tested with pytest and includes a browsable API interface, internationalization, and a formal deprecation policy.

RATING: 9.6/10 MAINT: active DRIFT: low
â–¸ 6 reusable components found
toon-format/toon ★ 25454 1124 APPLICATION

TOON (Token-Oriented Object Notation) is a human-readable serialization format designed to minimize LLM token usage while preserving lossless round-trip conversion with JSON. This monorepo provides the reference TypeScript implementation (`@toon-format/toon`) and a CLI tool (`@toon-format/cli`) for encoding/decoding TOON. The library features streaming encode/decode, tabular forms for uniform data, normalization of special JavaScript values (BigInt, Date, Set, Map), security hardening against prototype pollution, and a replacer function with path tracking. The CLI supports stdin/stdout conversion, auto-detection by file extension, token statistics, and delimiter options. The repository also includes an extensive benchmark suite comparing TOON against JSON, YAML, XML, and CSV across token efficiency and retrieval accuracy using multiple LLMs (Claude, Gemini, GPT, Grok). Results show TOON matches JSON's accuracy while using ~43% fewer tokens. A documentation site with an interactive playground is provided via VitePress. The codebase is well-structured with clean abstractions, streaming APIs, and thorough testing, though it relies on an external spec repository and has a single author, creating bus factor risk.

RATING: 9.5/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
ultrajson/ultrajson ★ 4496 385 APPLICATION

UltraJSON is a high-performance JSON encoder/decoder library for Python, implemented entirely in C with Python bindings. It provides drop-in replacements for Python's standard json module (ujson.dumps, ujson.loads, ujson.dump, ujson.load) and offers configuration options for ASCII encoding, HTML character escaping, forward slash escaping, indentation, sorting keys, NaN/Infinity handling, and customizable separators. The library's core architecture consists of a hand-optimized C state machine for decoding and a recursive encoder that handles Python objects via a type-context system. It bundles a copy of the double-conversion library for precise floating-point serialization and uses a stack-first, heap-later buffer allocation strategy. Despite being in maintenance-only mode due to architectural security concerns, the codebase exhibits strong craftsmanship: meticulous memory management, comprehensive UTF-8 validation, support for surrogate pairs, fuzz testing with ref-count verification, and compatibility with CPython's free-threaded builds. The repository also includes extensive tests, benchmarks, and CI for multiple architectures and Python implementations (CPython, PyPy, GraalPy).

RATING: 9.4/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
pelletier/go-toml ★ 1980 250 APPLICATION

This repository provides a Go library (`github.com/pelletier/go-toml/v2`) for reading and writing TOML documents, conforming to TOML v1.1.0. It offers a two-phase architecture: a low-level iterative AST parser in the `unstable` package, and higher-level `Marshal`/`Unmarshal` functions with configurable streaming `Encoder`/`Decoder` that support strict mode, custom marshalers, and struct tags. The library is dependency-free (only standard library) and includes three CLI tools: `tomll` (formatter), `tomljson` (TOML to JSON), and `jsontoml` (JSON to TOML). The codebase demonstrates strong engineering practices: pooled encoder/decoder states, cached struct plans via `sync.Map`, word-at-a-time scanning for performance, a fused generic decode path, and comprehensive test coverage including auto-generated conformance tests from the upstream toml-test suite. It also includes an experimental document-editing package (`unstable/edit`) that preserves comments and layout via byte-range indexing and splice-based mutations.

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
foxglove/mcap ★ 1089 227 APPLICATION

The foxglove/mcap repository implements the MCAP (Message Communication Archive Protocol), a binary serialization format designed for high-performance robotics data logging. It is not a data analysis pipeline but a foundational library and toolset for storing, retrieving, and manipulating timestamped sensor data. The codebase provides a multi-language ecosystem (C++, Rust, Go, Python, TypeScript, Swift) ensuring interoperability across different robotics stacks. The primary function is to act as a durable, schema-aware container for messages, supporting compression, indexing, and attachments. Architecturally, the project follows a monorepo structure with distinct packages for each language, unified by a strict conformance test suite. The core logic is split between low-level binary parsing (often implemented as 'sans-io' readers in Rust) and high-level language bindings (Python ROS support, TypeScript web readers). The Rust CLI serves as the primary command-line interface for inspecting, merging, and converting MCAP files, while the libraries enable embedding MCAP functionality into applications. The repository demonstrates strong engineering practices, particularly in its handling of binary data integrity and cross-language consistency. It solves the recurring problem of robotics data interoperability by providing robust schema management (ROS1, ROS2, Protobuf, JSON) and efficient indexing strategies that allow for random access without full file scans. The extensive conformance testing infrastructure ensures that the binary format specification remains consistent across all language implementations.

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
sparklyr/sparklyr ★ 971 310 APPLICATION

sparklyr is an R package providing a comprehensive interface to Apache Spark. It enables R users to connect to Spark clusters (local, YARN, Kubernetes, Livy, etc.), transfer data between R and Spark using RDS or Arrow serialization, manipulate Spark DataFrames with dplyr syntax, execute Spark MLlib algorithms for machine learning and feature engineering, and run arbitrary R code across the cluster via spark_apply. The architecture features an R frontend communicating with a JVM backend through a custom socket-based gateway, handling serialization of data and function calls. Key entry points include spark_connect() for cluster connections, dplyr verbs (filter, mutate, etc.) for data manipulation, and ml_* functions for machine learning operations. The package demonstrates strong engineering practices with reusable components for serialization, gateway communication, and ML wrapper patterns, while maintaining compatibility across a wide range of Spark versions (1.5.2 to 4.0.x).

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
restsharp/RestSharp ★ 9819 2297 APPLICATION

RestSharp is a mature .NET HTTP client library that wraps HttpClient into a fluent request/response API. It is not a standalone application; it ships as NuGet packages consumed by other projects. The core RestClient handles execution through an async pipeline: interceptors, authenticators, request content construction, cookie containers, redirect handling, and response deserialization. RestRequest models parameters (query, header, body, URL segments, cookies, files) and is built fluently through extension methods. Responses are RestResponse<T> with error aggregation and throw helpers, making failure handling explicit and consistent. The architecture is modular: a core library plus optional serializer packages for Newtonsoft.Json, System.Text.Json, XML, and CsvHelper, a DI integration package for Microsoft dependency injection, and a Roslyn source generator that produces immutable and clone variants of configuration types. Authentication is pluggable via IAuthenticator, with built-in Basic, JWT, OAuth1 signature generation, and OAuth2 client-credentials/refresh-token/token authenticators. Serialization is managed by a registry keyed by data format and content type, with automatic body sniffing between JSON and XML. The codebase multi-targets netstandard2.0, net471, net48, net8.0, net9.0, and net10.0, and includes extensive unit and WireMock-based integration tests, benchmarks, and versioned Docusaurus documentation. Code quality is strong: clean separation of concerns, extensive use of extension methods for ergonomics, custom source generation for option immutability, and a comprehensive test suite covering OAuth1 official vectors, redirect behavior, cookies, serializer edge cases, and interceptor ordering. Some legacy surface remains (obsolete hooks, polyfills for old TFMs), but the project tracks current .NET releases and is actively maintained. This is a well-crafted library that remains one of the standard HTTP client abstractions in the .NET ecosystem.

RATING: 9.2/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
apple/swift-protobuf ★ 4963 542 APPLICATION

This is the official Swift implementation of Protocol Buffers from Apple. It produces a runtime library (`SwiftProtobuf`) for serializing/deserializing protobuf messages in binary, JSON, and text format, and a `protoc` plugin (`protoc-gen-swift`) that generates Swift source code from `.proto` files. The architecture is a set of Swift packages (SwiftProtobuf runtime, SwiftProtobufPluginLibrary, protoc-gen-swift) plus a vendored C++ protobuf implementation and Abseil for the plugin's host tool. Key entry points include the `Message` protocol and its extensions for encoding/decoding, the `BinaryDecoder`/`BinaryEncoder` for wire format handling, and the plugin's `CodeGenerator` implementation. External dependencies are `protoc` (the protobuf compiler) for code generation and the vendored protobuf/abseil C++ sources for the custom `protoc` binary. The repository also includes comprehensive test suites, fuzz testing harnesses, and conformance test runner, ensuring robust compatibility across languages.

RATING: 9.2/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
tinylib/msgp ★ 1950 202 APPLICATION

This is the `tinylib/msgp` repository, a high-performance MessagePack serialization library for Go with an integrated code generation tool. The actual system consists of two layers: a runtime library in the `msgp/` package providing buffered readers/writers, zero-copy byte slice operations, and interfaces like `Marshaler`/`Unmarshaler`; and a code generator (`main.go`, `gen/`, `parse/`) that produces optimized, reflection-free serialization methods from Go structs and directives. The architecture is a combination of a CLI tool (for `//go:generate` workflows) and a library that the generated code depends on. Key entry points include the `Run()` function in `main.go` for code generation, and the `Reader`/`Writer` types for runtime I/O. External dependencies are minimal: `philhofer/fwd` for buffered I/O and `golang.org/x/tools` for code formatting. The library supports advanced features like shims, type replacement, omitempty/omitzero, limits, generics, and set types. The codebase is well-structured, with extensive tests and benchmarks, and demonstrates sophisticated engineering in code generation and serialization performance.

RATING: 9.2/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
ahamez/protox ★ 298 22 APPLICATION

Protox is an Elixir library for Google Protocol Buffers (protobuf) that provides encoding/decoding to/from binary wire format, code generation from .proto schemas, and compile-time schema compilation. It supports both proto2 and proto3 syntaxes. The library is used by defining a module with `use Protox` and providing either an inline schema string or a list of .proto files; this macro triggers protoc to parse the definitions and generates Elixir structs with encode/decode functions, unknown field handling, and schema introspection. The generated code is self-contained and only requires the protox runtime for encoding/decoding primitives. The architecture is a mix of compile-time code generation (via Elixir macros) and runtime encoding/decoding primitives. Key entry points include the `Protox` macro, `Protox.encode/1`, `Protox.decode/2`, and the `mix protox.generate` task for generating standalone source files. The library relies on `protoc` (the protobuf compiler) only at compile time to produce a binary descriptor; all runtime operations are pure Elixir. External dependencies are minimal: protoc must be in PATH during development, and the runtime has no non-OTP dependencies. Protox emphasizes correctness and performance: it passes Google's official conformance test suite, uses property-based testing with StreamData, mutation testing with Muex, and maintains near-100% test coverage. The encoding/decoding paths are heavily optimized with unrolled varint loops, inline binary pattern matching, and careful accumulator management to minimize allocations. The library also supports unknown fields, message merging, proto2 required fields, nested extensions, and proto3 optional fields.

RATING: 9.2/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
google/flatbuffers ★ 26560 3696 APPLICATION

FlatBuffers is a cross-platform serialization library developed by Google, designed for memory-efficient, zero-copy binary serialization. In production, it is used as both a schema compiler (flatc) and a set of runtime libraries for over a dozen languages including C++, Java, Rust, Swift, TypeScript, Python, Go, C#, Kotlin, and more. The flatc compiler parses .fbs schema files and generates type-safe accessor code for each target language, enabling applications to read and write serialized data without parsing overhead. The runtime libraries provide builders, readers, verifiers, and support for gRPC integration and a self-describing variant format called FlexBuffers. The architecture is split into two main components: the compiler (written in C++) and the language-specific runtime libraries. The compiler's entry point is flatc_main.cpp, which registers code generators for each language. The runtimes follow a consistent pattern across languages: a FlatBufferBuilder for constructing buffers, Table/Struct base classes for reading, and Verifier for safety checks. Data flows from schema definition to generated code, which is then used by applications to serialize/deserialize data with direct memory access. External dependencies are minimal for the core library (only standard library for most languages), but gRPC integration requires gRPC libraries. The project includes extensive testing, fuzzing, and benchmarking infrastructure to ensure correctness and performance across all supported languages.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 4 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
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
$ loading more...
$ submit: