Protocol Buffers - Google's data interchange format

  •        3894

Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.

https://developers.google.com/protocol-buffers/
https://github.com/google/protobuf
http://code.google.com/p/protobuf/

Tags
Implementation
License
Platform

   




Related Projects

php-protobuf - PHP Protobuf - Google's Protocol Buffers for PHP


Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. It might be used in file formats and RPC protocols.PHP Protobuf is Google's Protocol Buffers implementation for PHP with a goal to provide high performance, including a protoc plugin to generate PHP classes from .proto files. The heavy-lifting (a parsing and a serialization) is done by a PHP extension.

Protocol Buffers - Google's data interchange format


Protocol buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.

Wire - Clean, lightweight protocol buffers for Android and Java.


Schemas describe and document data models. If you have data, you should have a schema. Google's Protocol Buffers are built around a great schema language. It's cross platform and language independent. Whatever programming language you use, you'll be able to use proto schemas with your application. Proto schemas are backwards-compatible and future-proof. You can evolve your schema as your application loses old features and gains new ones.

duplex - Full duplex modern RPC


Duplex is an RPC protocol designed for dynamic (and some statically-typed) languages that focuses on advanced RPC semantics and not object or frame serialization. This lets you pick how to marshal objects, whether with JSON, msgpack, protobuf, BERT, BSON, or anything custom.While that alone is somehow already revolutionary for RPC protocols, it also combines client and server into a peer object, letting either side of the connection call or provide invocable service methods. This means you never have to worry about only having a client or only having a server library in your language. It also allows for flexible connection topologies (server calling client functions), callbacks, and plugin architectures.



Avro


Avro is a data serialization system. It is a subproject of Apache Hadoop.

Cap'n Proto - Serialization/RPC system


Cap'n Proto is an insanely fast data interchange format and capability-based RPC system. Think JSON, except binary. Or think Protocol Buffers, except faster. In fact, in benchmarks, Cap'n Proto is INFINITY TIMES faster than Protocol Buffers.

ProtoBufferTools


ProtobufferTools is free and open source protobuf editor, it's can simply help you to serialize your protobuf data contract class to xml, and pack and unpack th

protobuf-socket-rpc - Socket RPC client & server using protobuf as the wire protocol


Socket RPC client & server using protobuf as the wire protocol

serialization - serialization tutor including json, protobuf, thrift


serialization tutor including json, protobuf, thrift

raw - A simple library for working with raw Go struct data.


This is simple library for working with raw Go struct data. Most of the time it's good to serialize your data to a common encoding format (e.g. JSON, MessagePack, Protocol Buffers) when saving and retrieving data to disk or sending over a network. These encodings can provide a common interface for data and support versioning and other useful features.However, serialization comes at a cost. Converting between types and copying memory all has overhead so when you need to go really fast, sometimes you need to skip serialization all together.

hprose-golang - Hprose is a cross-language RPC. This project is Hprose 2.0 for Golang.


Hprose is a High Performance Remote Object Service Engine.It is a modern, lightweight, cross-language, cross-platform, object-oriented, high performance, remote dynamic communication middleware. It is not only easy to use, but powerful. You just need a little time to learn, then you can use it to easily construct cross language cross platform distributed application system.

hprose-java - Hprose is a cross-language RPC. This project is Hprose 2.0 for Java


Hprose is a High Performance Remote Object Service Engine. It is a modern, lightweight, cross-language, cross-platform, object-oriented, high performance, remote dynamic communication middleware. It is not only easy to use, but powerful. You just need a little time to learn, then you can use it to easily construct cross language cross platform distributed application system. Hprose supports many programming languages, for example: * AAuto Quicker * ActionScript * ASP * C++ * Dart * Delphi/Free Pascal * dotNET(C#, Visual Basic...) * Golang * Java * JavaScript * Node.js * Objective-C * Perl * PHP * Python * Ruby * ... Through Hprose, You can conveniently and efficiently intercommunicate between those programming languages. This project is the implementation of Hprose for Java.

hprose-php - Hprose is a cross-language RPC. This project is Hprose 2.0 for PHP


Hprose is a High Performance Remote Object Service Engine.It is a modern, lightweight, cross-language, cross-platform, object-oriented, high performance, remote dynamic communication middleware. It is not only easy to use, but powerful. You just need a little time to learn, then you can use it to easily construct cross language cross platform distributed application system.

NanomsgRPC - A lightweight RPC framework for .NET utilizing NNanomsg


This is lightweight remote procedure call (RPC) framework for .NET that utilizes NNanomsg for robust message delivery.Request/Response data is specified using BinaryReader/Writers. In practice it is straightforward to do this manually, though you could pack your data using something like protobuf if you want. There is no IDL.

protobuf-c-hello-world - The smallest useful example of using Protobuf-C RPC capabilities.


The smallest useful example of using Protobuf-C RPC capabilities.

hprose-delphi - Hprose is a cross-language RPC. This project is Hprose 2.0 for Delphi and FreePascal


Hprose is a High Performance Remote Object Service Engine.It is a modern, lightweight, cross-language, cross-platform, object-oriented, high performance, remote dynamic communication middleware. It is not only easy to use, but powerful. You just need a little time to learn, then you can use it to easily construct cross language cross platform distributed application system.

goprotobuf-rpc - Go protobuf rpc extension.


Go protobuf rpc extension.