30 open-source projects similar to mgravell/protobuf-net, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
protobuf-net is a .NET library that serializes and deserializes objects using the Protocol Buffers binary format for efficient data exchange. It provides a code-first gRPC service framework, allowing developers to define service contracts directly from existing C# classes without writing separate .proto files. The library is nullable-aware, encoding null values in collections and nullable scalars using wrapper messages to distinguish null from default zero values, and includes an ahead-of-time serializer generator that compiles serializer code at build time to eliminate runtime code generati
Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to facilitate cross-language data exchange. It includes an interface definition language compiler that translates schema definitions into idiomatic native types and serialization boilerplate across multiple languages. The project distinguishes itself through a zero-copy binary reader that allows specific fields to be accessed without deserializing the entire object, as well as an object graph serializer that preserves circular references and referential integrity. It also features a
MessagePack-CSharp is a high-performance binary serialization library for .NET applications that converts object graphs into the MessagePack format. It functions as a C# data serialization toolkit and a polymorphic binary encoder capable of handling abstract classes and interfaces using union keys to identify concrete derived types. The library provides a binary format transcoder to transform binary data into human-readable JSON for debugging. It supports ahead-of-time formatter generation to avoid runtime overhead and implements LZ4 binary compression to reduce the size of serialized data.
Prost is a Protocol Buffers implementation for Rust that functions as a binary serialization framework and code generator. It translates schema definitions into idiomatic Rust structs and enums, providing the logic necessary to encode and decode structured data into the Protocol Buffers binary format. The project distinguishes itself through a no-std implementation, allowing it to operate in embedded or kernel environments that lack a standard library. It also serves as a schema introspector by emitting file descriptor sets, which enables the programmatic analysis of original schema definitio
This project is a Protocol Buffers Swift library and framework providing a runtime for serializing and deserializing structured data. It includes a code generator that transforms schema files into type-safe Swift structures and a binary serialization framework for converting data into compact streams. The library functions as a JSON data mapper, transforming messages into standard JSON representations to facilitate cross-platform data exchange. It utilizes a schema-driven approach to ensure consistent data modeling between Swift applications and services written in other languages. The frame
fastjson2 is a high-performance Java library used for serializing and deserializing Java objects to and from JSON strings and byte arrays. It functions as a binary JSON serializer for encoding objects into optimized binary formats to reduce payload size and increase processing speed. The project includes a JSONPath query engine for extracting specific data and fields from JSON documents using standardized path expressions and filters. It also serves as a JSON schema validator, providing utilities to generate data contracts and validate JSON input against defined schemas to ensure structural c
gRPC Java is a library for building distributed systems that enables client and server applications to interact through remote procedure calls. It uses protocol buffers to define service interfaces and exchange structured data, providing a framework for connecting microservices across different environments. The framework utilizes an asynchronous networking foundation to manage concurrent connections and relies on a multiplexed binary protocol to facilitate efficient data exchange. It supports pluggable transport interceptors, allowing for the injection of custom logic into the request-respon
CsvHelper is a library for reading and writing comma-separated value files by mapping data to custom class objects. It functions as a parsing library and data mapper that converts flat-file text into structured data objects and serializes internal data sets back into standard CSV files. The project emphasizes memory efficiency through a parser that optimizes resource consumption. It utilizes field value caching and an interned string cache to store repetitive values, which reduces memory overhead when processing large datasets. The library provides a configuration-driven parsing engine that
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
This project is a Protocol Buffers implementation for Go, providing a binary serialization framework to convert native data structures into a compact binary format for efficient network transmission and storage. It functions as a language bindings generator, utilizing a compiler plugin to create Go source code from platform-neutral protocol buffer definitions. The implementation includes a JSON data mapper that transforms structured binary messages into JSON format to facilitate compatibility with web services and external APIs. It also enables cross-language data exchange by using a common s
Nanopb is a lightweight C implementation of Protocol Buffers designed for resource-constrained systems and microcontrollers. It functions as both an embedded serialization library for encoding and decoding structured data and a code generator that transforms definition files into compact C source and header files. The project is distinguished by its focus on static memory allocation, using fixed maximum sizes for strings and arrays to avoid dynamic memory allocation and heap fragmentation. It employs a callback-based streaming mechanism to process messages or fields that exceed available phys
grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and servers. It provides an asynchronous communication stack and a protocol buffers implementation for encoding, decoding, and generating type-safe code from service definitions. The project enables the implementation of unary and bi-directional data streaming over the HTTP/2 protocol. It includes specialized support for gRPC-Web integration, allowing browser-based clients to communicate with services through protocol translation. The infrastructure covers a broad range of distr
protobuf.js is a JavaScript and TypeScript library for encoding and decoding structured data using the Protocol Buffers binary format. It functions as a dynamic parser that can load and process schemas at runtime, a JSON transcoder for converting messages to human-readable formats, and a framework for building transport-agnostic remote procedure call clients. The project distinguishes itself by offering both dynamic message handling and a static code generator that produces TypeScript declarations and JavaScript modules to reduce runtime overhead. It also provides a reflection API for definin
This project is a gRPC framework for Node.js used to implement high-performance remote procedure calls. It provides a client-server communication library that utilizes HTTP/2 for streaming, multiplexing, and binary framing, alongside a protocol buffers implementation for defining structured data and generating service stubs. The framework includes a toolchain to compile protocol buffer files into language-specific objects and supports the generation of static TypeScript type definitions to validate objects at runtime. The library covers distributed system networking and microservices communi
Wire is a cross-platform code generator and implementation of gRPC and Protocol Buffers. It transforms schema definitions into type-safe native language bindings for Kotlin, Swift, and Java to ensure consistent data exchange and communication between distributed systems. The project provides specialized tools for protocol buffer schema management, including the ability to prune unused types and filter fields by version to reduce final binary sizes. It also handles namespace management and allows for the creation of custom schema handlers to execute user-defined logic during the compilation ph
Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a schema-driven toolchain that compiles declarative data definitions into type-safe source code, enabling consistent communication and strongly typed API contracts across services written in different programming languages. The project distinguishes itself through a highly efficient binary wire format that utilizes tag-based encoding and variable-width integer compression to minimize payload size and processing overhead. It supports robust evolutionary schema management, allowing d
Buf is a toolchain for managing the full lifecycle of Protocol Buffers schemas. It provides a set of tools for schema governance, including linting to enforce style guides, a breaking change detector to ensure backward compatibility, and a system for producing language-specific source code via local or remote plugins. The project distinguishes itself through a remote schema registry that centralizes the hosting, versioning, and distribution of Protocol Buffers modules. This registry allows for server-side enforcement of governance policies, such as blocking updates that introduce backward-inc
NBTExplorer is a viewer and editor for Named Binary Tag data. It functions as a processor for the hierarchical binary tag files used within Minecraft save files and game configuration. The tool enables the exploration and modification of game world settings, player data, and entity states. It supports reading and updating structured binary data across standard, uncompressed, and region-based file formats. The project provides capabilities for binary tag deserialization and in-place modification. It handles data through buffered stream reading, zlib-based decompression, and region-file indexi
Golang-100-Days is a structured, daily lesson curriculum for learning the Go programming language from the ground up, progressing into practical microservice and web application development. The project is built around a code-example-driven approach, where each day introduces new concepts through runnable Go snippets and complete project examples rather than abstract theory, covering Go fundamentals such as syntax, data types, control flow, functions, and packages. The curriculum differentiates itself by grouping lessons around specific Go frameworks and distributed system patterns. It includ
TensorBoard is a visualization toolkit for tracking and analyzing machine learning model training progress and performance using TensorFlow event logs. It provides a monitoring dashboard for plotting scalar metrics, tensor distributions, and training curves, and includes specialized tools for visualizing neural network computational graphs and projecting high-dimensional embeddings. The project enables side-by-side comparison of multiple training runs to analyze the impact of hyperparameters on model outcomes. It also features a high-dimensional embedding projector and a graph visualizer for
PyWxDump is a data recovery and export utility designed to extract, decrypt, and convert proprietary mobile messaging databases into readable formats for archival and recovery. It specifically functions as a tool to read and parse encrypted SQLite databases used by WeChat to retrieve chat history and user data. The project focuses on the preservation of conversation history and the forensic recovery of application data for archival or legal purposes. It enables the conversion of proprietary message stores into portable, open formats to prevent data loss from account deletion or device migrati
Graphene is a library and framework for building type-safe GraphQL APIs and schemas using Python objects and resolvers. It provides a system for mapping internal data models to typed GraphQL schemas, enabling the creation of servers that process queries and execute resolvers to return structured data. The project includes a full implementation of the Relay specification, providing standardized patterns for global object identification and cursor-based pagination. It utilizes a class-based approach to schema definition and supports interface-based type inheritance. The framework covers a broa
This project is a Go programming language study guide and backend development course. It provides a collection of learning notes and practical examples covering fundamental syntax and core language concepts. The repository functions as a tutorial for building web APIs and network services. It includes implementation guides for the Gin web framework and code demonstrations for creating remote procedure call services using Protocol Buffers. The material covers backend API engineering, including routing, data binding, and error handling. It also includes examples of structured logging and custo
Fory is a cross-language serialization framework and binary data serializer designed to convert complex object graphs into a compact binary format for high-performance data exchange. It includes an IDL-based schema compiler to transform interface definition language files into type-safe native data models and a schema evolution manager to maintain forward and backward compatibility. The project features a zero-copy data access layer that allows reading specific fields from binary rows without deserializing the entire object. It supports dual-mode serialization, enabling a toggle between a por
Pomelo is a distributed Node.js game server framework designed for building scalable multiplayer game backends and real-time web applications. It employs a multi-process architecture to distribute application logic horizontally across a cluster of machines, enabling high concurrency and balanced network traffic. The framework utilizes a WebSocket communication layer to manage bidirectional data exchange between diverse web clients and server clusters. It incorporates a remote procedure call system for triggering functions across remote server processes and uses Protocol Buffers for binary ser
brpc is a high-performance C++ RPC framework and network programming library designed for building distributed systems. It functions as a multi-protocol RPC server capable of hosting and detecting multiple communication protocols, including gRPC, Thrift, HTTP, Redis, and Memcached, on a single TCP port. The project distinguishes itself through high-throughput data transport and memory efficiency, utilizing RDMA-based transport to bypass the kernel TCP stack and zero-copy memory management to eliminate data duplication. It also implements the Raft algorithm for consensus-based state replicatio
Protocol Buffers is a binary serialization framework used to encode structured information into compact payloads to reduce network bandwidth and storage. It functions as a cross-language data interchange standard that enables different platforms and languages to exchange structured data using a shared schema. The project includes an interface definition language compiler that transforms schema definitions into type-safe source code for multiple target programming languages. This mechanism decouples data structures from specific language memory layouts and ensures consistent data handling acro
Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It uses the data mapper and identity map patterns to decouple the in-memory object model from the database schema, allowing developers to manage data persistence without writing manual SQL. The project features a dedicated object-oriented query language and programmatic builder for retrieving data based on entities rather than tables. It implements a unit-of-work system to track object changes during a request and synchronize them via atomic transactions. The capability surface inc
Netty is an asynchronous network framework designed for building scalable protocol servers and clients. It utilizes an event-driven reactor pattern and a non-blocking input/output model to decouple connection handling from application logic, allowing for the development of responsive network services that manage high volumes of concurrent connections. The framework distinguishes itself through a modular pipeline-based processing chain that enables the implementation of custom binary or text-based protocols. It provides a pluggable transport abstraction that allows developers to switch between
uvloop is a high-performance replacement for the standard Python event loop. It functions as a drop-in substitute designed to accelerate asynchronous networking tasks and reduce latency in event-driven software systems. The project achieves its performance characteristics by utilizing a Cython-based extension module that wraps the libuv C library. By leveraging low-level system calls for event-driven input and output multiplexing, it manages concurrent network requests and subprocess execution with minimal overhead. The implementation supports scalable backend service development by handling