Protocol Buffers 36.0
Last reviewed Sep 19, 2026
Prompt Details
Prompt Composition
1prompt
- 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 Rustgoogle-protobufcrate 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
protocinvocation 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
upbMiniTables and MiniDescriptors trusted; directly