Protocol Buffers 36.0

Last reviewed Sep 19, 2026

Export as PDF

Prompt Details

Prompt Composition

1prompt
  1. Protocol Buffers 36.0102 lines · 4.3K tokens

CWE Coverage

  • 20
  • 176
  • 201
  • 209
  • 252
  • 306
  • 319
  • 347
  • 349
  • 409
  • 416
  • 436
  • 502
  • 532
  • 674
  • 770
  • 807
  • 829
  • 862
  • 863
  • 915
  • 918
  • 1284
  • 1286
  • 1395

Prompt Preview

Use these rules for Protocol Buffers release 36.0, including proto2, proto3, and Editions 2023, 2024, and 2026 schemas. Apply implementation-specific rules to the named runtime.

Version and runtime compatibility

  • Pin protoc, plugins, generated code, and runtimes as a reviewed set. Release 36.0 maps to C++ and Python 7.36.0, Java 4.36.0, C# 3.36.0, PHP and Objective-C 5.36.0, Ruby 4.36.0, and the Rust google-protobuf crate 0.36.0; runtime major versions are language-specific.
  • Never pair newer generated code with an older runtime or load multiple runtime majors into one process. Regenerate bindings instead of disabling generated version checks to force an unsupported combination.
  • Require exact generated-code/runtime matches for C++ and Rust, including patch releases; C++ also provides no ABI compatibility guarantee between releases. For other implementations, stay within their documented compatibility windows and prefer matching releases.
  • Use supported host-language versions: Python requires at least 3.10 and Ruby at least 3.2 for this release. Check independently released language plugins and runtimes against their own support policy; a successful protoc invocation does not establish runtime or edition compatibility.
  • Prefer the default hardened implementation and full runtimes for public servers; Java/C++ Lite and Python/PHP fallback implementations have different hardening coverage. Verify which backend the deployed artifact actually loads.
  • Use documented language-runtime APIs. Keep internal upb MiniTables and MiniDescriptors trusted; directly