Protocol Buffer Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 6: Line 6:
Protocol buffers provide the following advantages:
Protocol buffers provide the following advantages:
* It allows defining types, and the data is fully typed when exchanged. We know the type of data in transit.
* It allows defining types, and the data is fully typed when exchanged. We know the type of data in transit.
* Data is compressed automatically.
* Comes with a schema (the <code>.proto</code>) file, which is used to generate code that writes and reads the data.
* Schema supports embedded documentation.
* Schema can evolve over time in a safe manner (backward and forward compatible).


=TO MERGE=
=TO MERGE=

Revision as of 20:39, 6 May 2024

Internal

Overview

Protocol buffers provide the following advantages:

  • It allows defining types, and the data is fully typed when exchanged. We know the type of data in transit.
  • Data is compressed automatically.
  • Comes with a schema (the .proto) file, which is used to generate code that writes and reads the data.
  • Schema supports embedded documentation.
  • Schema can evolve over time in a safe manner (backward and forward compatible).

TO MERGE

Overview

Protocol buffers is a format used for data serialization, publicly introduced by Google in 2008. The benefits of using Protocol Buffers include the simplicity of the definition language, a small data output size, high performance of serialization and deserialization and the ability to define derives in addition to data structures and compile client and server code in multiple languages.

Protocol Buffer can be used as serialization format for microservices. Additionally, the Protocol Buffer schema languages allows declaring service APIs. Code for those services can then be generated automatically.

gRPC uses Protocol Buffers as serialization format.

Message

A message is actually a type. "Message" is used probably because the instances of the types defines as such are mainly intended to be sent over the wire.