79 个仓库
Libraries for parsing, emitting, and handling data formats like YAML and JSON.
Explore 79 awesome GitHub repositories matching part of an awesome list · Data Serialization. Refine with filters or upvote what's useful.
Protocol Buffers 是一种语言中立、平台无关的结构化数据序列化机制。它提供了一个模式驱动的工具链,将声明式数据定义编译为类型安全的源代码,从而在不同编程语言编写的服务之间实现一致的通信和强类型的 API 契约。 该项目以其高效的二进制线路格式脱颖而出,该格式利用基于标签的编码和变宽整数压缩来最小化有效载荷大小和处理开销。它支持稳健的演进式模式管理,允许开发者在保持向后和向前兼容性的同时增量更新数据结构。这得到了版本化版本系统的进一步支持,该系统管理跨分布式软件组件的功能集和序列化逻辑。 除了核心二进制序列化外,该项目还包括用于模式验证的规范 JSON 转换、细粒度的符号可见性控制以及用于区分默认值和未设置值的字段存在性跟踪功能。它还提供专门的优化,例如 C++ 实现中基于竞技场(arena)的内存管理,以提高创建和清理复杂消息树时的性能。
Google's language-neutral data interchange format.
FlatBuffers is a cross-platform serialization library designed for performance-critical applications that require efficient, zero-copy data access. By organizing data in a structured binary format, it allows applications to read and write complex data structures directly from memory-mapped buffers without the need for intermediate parsing or temporary object allocation. The project distinguishes itself through a schema-driven approach that balances high-performance access with long-term data evolution. It utilizes a unique memory layout featuring relative offsets and inline fixed-size structu
Memory-efficient serialization library for performance-critical applications.
Gson is a Java library designed for the serialization and deserialization of objects into structured text formats. It functions as a reflection-based data mapper, inspecting class structures at runtime to automatically convert memory-resident objects into data representations and reconstruct them back into typed language objects. The library distinguishes itself through a modular type-adapter pattern that allows for custom conversion rules for complex or nested structures. It also provides robust support for production environments by generating build-time metadata and configuration rules, wh
Library for serializing and deserializing Java objects.
This project is a high-performance JSON library for Go, serving as a replacement for the standard encoding/json package. It provides a serialization engine for encoding and decoding data structures, alongside a schemaless parser for extracting specific values from JSON blobs using paths. The library distinguishes itself through a focus on reducing CPU and memory overhead. It implements a high-performance encoder that utilizes buffer reuse and reduced float precision to increase data throughput. Broad capability areas include data serialization, high-performance JSON processing, and schema-le
High-performance drop-in replacement for encoding/json.
Moshi is a JSON serialization library and parser for Kotlin and Java. It functions as a reflectionless JSON encoder that converts typed objects to JSON strings and parses JSON data back into language objects. The library distinguishes itself through compile-time adapter generation, which removes the performance overhead associated with runtime reflection. It also provides a polymorphic JSON mapper that uses type identifiers to resolve and instantiate specific subclasses of a common base type. The framework supports custom adapter definitions for specialized type conversion, including nullabi
Modern JSON library for Android and Java.
这是一个 Go 语言的 Protocol Buffers 实现,提供了一个二进制序列化框架,可将原生数据结构转换为紧凑的二进制格式,以实现高效的网络传输和存储。它充当语言绑定生成器,利用编译器插件从平台无关的协议缓冲区定义中创建 Go 源代码。 该实现包含一个 JSON 数据映射器,可将结构化二进制消息转换为 JSON 格式,以促进与 Web 服务和外部 API 的兼容性。它还通过使用通用模式定义在不同编程语言之间共享结构化数据,从而实现跨语言数据交换。 该库涵盖了广泛的数据序列化和反序列化功能,包括通过克隆、合并和比较来操作结构化消息的能力。它还提供了基于反射的消息检查机制和递归消息合并功能,以在分布式系统中保持状态一致性。
Official Google protocol buffers support.
Jackson is a Java data binding framework and multi-format data serializer used to translate data structures into native language objects. It functions as a JSON data binding library and a streaming parser that reads and writes data as discrete tokens to process large datasets with minimal memory. The project distinguishes itself through a bytecode serialization accelerator that replaces standard reflection with generated bytecode to increase data binding speed. It employs a module-based extensibility model to support a wide range of formats beyond JSON, including XML, YAML, CSV, TOML, and bin
High-performance JSON processor.
orjson is a high-performance Python library for serializing and deserializing JSON data. It functions as both a JSON parsing library and a serialization engine, converting data between native Python objects and UTF-8 encoded bytes. The project provides specialized support for converting complex Python data structures, including dataclasses, datetime objects, and NumPy arrays and scalars, into JSON format. It also allows for the insertion of pre-serialized JSON blobs into documents to maintain processing speed. The library includes capabilities for memory-efficient deserialization through key
Fast, correct JSON library with support for dataclasses and datetimes.
mapstructure is a reflection-based library for the bidirectional encoding and decoding of generic map data into native typed Go structures. It functions as a tool for transforming loosely typed map values into specific structs and encoding those structs back into maps. The library utilizes Go reflection to map generic data keys to struct fields during runtime. It supports the transformation of untyped data from dynamic sources or configuration files into type-safe native structures. The mapping process includes recursive traversal of nested maps and slices, as well as the use of struct tags
Decoding generic maps into native Go structures.
MessagePack is a binary object serialization library and a cross-platform data exchange format. It serves as a binary alternative to JSON, converting structured data into a space-efficient binary representation for network transmission and storage. The system provides a standardized format for swapping complex data types across different programming languages and architectures. It allows for the definition of custom data type encoding by pairing application-specific information with specialized serialization markers. The library handles the encoding and decoding of diverse data types, includ
Binary serialization format for efficient cross-language data exchange.
Marshmallow is a Python data serialization library and validation framework. It functions as a bridge that transforms complex application objects into primitive data types for storage or network transmission and vice versa. The library utilizes a schema-based approach to validate that incoming data conforms to specific types and constraints. It employs a two-way transformation pipeline consisting of separate load and dump phases to handle deserialization and serialization. The framework supports class-based schema definitions with declarative field validation and recursive schema nesting for
Lightweight library for object serialization and validation.
Kryo is a Java binary serialization framework and object cloning library used to convert Java objects into a compact binary format and restore them from bytes. It provides a system for creating deep or shallow copies of complex object graphs without requiring binary conversion. The project utilizes variable-length integer encoding and integer-ID class registration to reduce the size of serialized data. It handles complex object graphs through circular reference tracking to prevent data duplication and infinite loops. To maintain long-term data viability, it includes schema evolution managemen
Fast and efficient Java serialization and cloning library.
yaml-cpp is a C++ library for parsing and emitting YAML 1.2 documents. It provides a complete YAML processing pipeline, from reading YAML content into a traversable node tree to writing in-memory data structures back as YAML text. The library represents parsed YAML as a mutable tree of typed nodes, supporting scalars, sequences, maps, and aliases. It uses a recursive-descent parser to build this node tree, and a stream-based emitter to generate YAML output incrementally. Template-based type conversion enables compile-time serialization between YAML nodes and C++ types, including support for c
YAML parser and emitter for C++.
This project is a Protocol Buffers Go compiler and code generation framework that translates schema definitions into optimized Go structures and reflection-free serialization methods. It includes a gRPC service generator for producing client and server communication code and a serialization performance toolkit for generating automated benchmarks and test suites. The framework features a plugin-based system for transforming data definitions into source code with custom field mapping and struct tag injection. It allows for custom type mapping and struct type overriding to link data fields to sp
Protocol buffers with support for gadgets.
yyjson is a high-performance C library for parsing, serializing, and manipulating JSON data structures. It functions as a memory-efficient data tool that utilizes custom memory pools and contiguous block allocation to minimize fragmentation and overhead. The project distinguishes itself as a SIMD JSON processor, using hardware-accelerated vector instructions for rapid string validation and parsing. It provides a toolkit for querying, modifying, and patching nested JSON objects and arrays through pointer-based access and path expressions. The library covers a broad range of data manipulation
High-performance JSON library implemented in C.
faster JSON serialization for Go
High-speed JSON serialization library for Go.
crates-io: https://crates.io/crates/protobuf crates-io-shields: https://img.shields.io/crates/v/protobuf.svg docs-rs: https://docs.rs/protobuf docs-rs-shields: https://img.shields.io/badge/docs.rs-rustdoc-green.svg actions:…
Implementation of Google Protocol Buffers.
Bond was a cross-platform framework for working with schematized data. The open-source project ended on March 31, 2025.
Framework for working with schematized data in high-scale services.
API DocumentationAPI documentation
High-performance HTML5 parsing library.
documentation
Implementation of the Cap'n Proto serialization format.