-<a href=https://github.com/protocolbuffers/protobuf/issues/new class=td-page-meta--project-issue target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class="td-breadcrumbs td-breadcrumbs__single"><ol class=breadcrumb><li class="breadcrumb-item active" aria-current=page>Programming Guides</li></ol></nav><div class=td-content><h1>Programming Guides</h1><div class=lead>Learn how to use Protocol Buffers in your projects.</div><header class=article-meta></header><div class=section-index><hr class=panel-line><div class=entry><h5><a href=/programming-guides/editions/>Language Guide (editions)</a></h5><p>Covers how to use the editions revisions of the Protocol Buffers language in your project.</p></div><div class=entry><h5><a href=/programming-guides/proto2/>Language Guide (proto 2)</a></h5><p>Covers how to use the proto2 revision of Protocol Buffers language in your project.</p></div><div class=entry><h5><a href=/programming-guides/proto3/>Language Guide (proto 3)</a></h5><p>Covers how to use the proto3 revision of the Protocol Buffers language in your project.</p></div><div class=entry><h5><a href=/programming-guides/proto-limits/>Proto Limits</a></h5><p>Covers the limits to number of supported elements in proto schemas.</p></div><div class=entry><h5><a href=/programming-guides/style/>Style Guide</a></h5><p>Provides direction for how best to structure your proto definitions.</p></div><div class=entry><h5><a href=/programming-guides/enum/>Enum Behavior</a></h5><p>Explains how enums currently work in Protocol Buffers vs. how they should work.</p></div><div class=entry><h5><a href=/programming-guides/encoding/>Encoding</a></h5><p>Explains how Protocol Buffers encodes data to files or to the wire.</p></div><div class=entry><h5><a href=/programming-guides/json/>ProtoJSON Format</a></h5><p>Covers how to use the Protobuf to JSON conversion utilities.</p></div><div class=entry><h5><a href=/programming-guides/techniques/>Techniques</a></h5><p>Describes some commonly-used design patterns for dealing with Protocol Buffers.</p></div><div class=entry><h5><a href=/programming-guides/addons/>Third-Party Add-ons</a></h5><p>Links out to many open source projects that seek to add useful functionality on top of Protocol Buffers.</p></div><div class=entry><h5><a href=/programming-guides/extension_declarations/>Extension Declarations</a></h5><p>Describes in detail what extension declarations are, why we need them, and how we use them.</p></div><div class=entry><h5><a href=/programming-guides/field_presence/>Application Note: Field Presence</a></h5><p>Explains the various presence-tracking disciplines for protobuf fields. It also explains the behavior of explicit presence-tracking for singular proto3 fields with basic types.</p></div><div class=entry><h5><a href=/programming-guides/serialization-not-canonical/>Proto Serialization Is Not Canonical</a></h5><p>Explains how serialization works and why it is not canonical.</p></div><div class=entry><h5><a href=/programming-guides/deserialize-debug/>Deserializing Debug Proto Representations</a></h5><p>How to log debugging information in Protocol Buffers.</p></div></div></div></main></div></div><footer class="bg-dark py-5 row d-print-none"><div class="container-fluid mx-sm-5"><div class=row><div class="col-6 col-sm-4 text-xs-center order-sm-2"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Stack Overflow" aria-label="Stack Overflow"><a class=text-white target=_blank rel=noopener href=https://stackoverflow.com/questions/tagged/protocol-buffers aria-label="Stack Overflow"><i class="fab fa-stack-overflow"></i></a></li></ul><script type=text/javascript id=cookiebanner src=https://cdn.jsdelivr.net/gh/dobarkod/cookie-banner@1.2.2/dist/cookiebanner.min.js data-height=50px data-message="Protobuf.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic." data-bg=#ffb data-fg=#000 data-position=bottom data-padding="10px 16px" data-close-text="OK, got it" data-font-size=18px data-moreinfo=https://policies.google.com/technologies/cookies></script></div><div class="col-6 col-sm-4 text-right text-xs-center order-sm-3"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub><a class=text-white target=_blank rel=noopener href=https://github.com/protocolbuffers/protobuf aria-label=GitHub><i class="fab fa-github"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Developer mailing list" aria-label="Developer mailing list"><a class=text-white target=_blank rel=noopener href=https://groups.google.com/g/protobuf aria-label="Developer mailing list"><i class="fa fa-envelope"></i></a></li></ul><script type=text/javascript id=cookiebanner src=https://cdn.jsdelivr.net/gh/dobarkod/cookie-banner@1.2.2/dist/cookiebanner.min.js data-height=50px data-message="Protobuf.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic." data-bg=#ffb data-fg=#000 data-position=bottom data-padding="10px 16px" data-close-text="OK, got it" data-font-size=18px data-moreinfo=https://policies.google.com/technologies/cookies></script></div><div class="col-12 col-sm-4 text-center py-2 order-sm-2"><small class=text-white>© 2026 Google LLC All Rights Reserved</small>
0 commit comments