How to log debugging information in Protocol Buffers.| protobuf.dev
Covers how to use the Protobuf to JSON conversion utilities.| protobuf.dev
This guide describes how to use the protocol buffer language to structure your protocol buffer data, including .proto file syntax and how to generate data access classes from your .proto files. It covers edition 2023 of the protocol buffers language. For information about how editions differ from proto2 and proto3 conceptually, see Protobuf Editions Overview. For information on the proto2 syntax, see the Proto2 Language Guide. For information on proto3 syntax, see the Proto3 Language Guide.| Programming Guides on Protocol Buffers Documentation
| protobuf.dev
This topic documents the limits to the number of supported elements (fields, enum values, and so on) in proto schemas. This information is a collection of discovered limitations by many engineers, but is not exhaustive and may be incorrect/outdated in some areas. As you discover limitations in your work, contribute those to this document to help others. Number of Fields Message with only singular proto fields (such as Boolean): ~2100 fields (proto2) ~3100 (proto3 without using optional fields...| Programming Guides on Protocol Buffers Documentation
Enums behave differently in different language libraries. This topic covers the different behaviors as well as the plans to move protobufs to a state where they are consistent across all languages. If you’re looking for information on how to use enums in general, see the corresponding sections in the proto2 and proto3 language guide topics. Definitions Enums have two distinct flavors (open and closed). They behave identically except in their handling of unknown values.| Programming Guides on Protocol Buffers Documentation
You can also send design and usage questions to the Protocol Buffers discussion group. Common Filename Suffixes It is fairly common to write messages to files in several different formats. We recommend using the following file extensions for these files. Content Extension Text Format .txtpb Wire Format .binpb JSON Format .json For Text Format specifically, .textproto is also fairly common, but we recommend .txtpb for its brevity. Streaming Multiple Messages If you want to write multiple messa...| Programming Guides on Protocol Buffers Documentation
Many open source projects seek to add useful functionality on top of Protocol Buffers. For a list of links to projects we know about, see the third-party add-ons wiki page.| Programming Guides on Protocol Buffers Documentation
Introduction This page describes in detail what extension declarations are, why we need them, and how we use them. NOTE: Proto3 does not support extensions (except for declaring custom options). Extensions are fully supported in proto2 and editions though. If you need an introduction to extensions, read this extensions guide Motivation Extension declarations aim to strike a happy medium between regular fields and extensions. Like extensions, they avoid creating a dependency on the message typ...| Programming Guides on Protocol Buffers Documentation
Background Field presence is the notion of whether a protobuf field has a value. There are two different manifestations of presence for protobufs: no presence, where the generated message API stores field values (only), and explicit presence, where the API also stores whether or not a field has been set. Historically, proto2 has mostly followed explicit presence, while proto3 exposes only no presence semantics. Singular proto3 fields of basic types (numeric, string, bytes, and enums) which ar...| Programming Guides on Protocol Buffers Documentation
Many people want a serialized proto to canonically represent the contents of that proto. Use cases include: using a serialized proto as a key in a hash table taking a fingerprint or checksum of a serialized proto comparing serialized payloads as a way of checking message equality Unfortunately, protobuf serialization is not (and cannot be) canonical. There are a few notable exceptions, such as MapReduce, but in general you should generally think of proto serialization as unstable.| Programming Guides on Protocol Buffers Documentation
Provides direction for how best to structure your proto definitions.| protobuf.dev
Explains how Protocol Buffers encodes data to files or to the wire.| protobuf.dev
Covers how to use the proto3 revision of the Protocol Buffers language in your project.| protobuf.dev