You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Compiler Invocation The protocol buffer compiler produces PHP output when invoked with the --php_out= command-line flag. The parameter to the --php_out= option is the directory where you want the compiler to write your PHP output. In order to conform to PSR-4, the compiler creates a sub-directory corresponding to the package defined in the proto file.</description></item><item><title>PHP API</title><link>https://protobuf.dev/reference/php/api-docs-link/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/php/api-docs-link/</guid><description/></item><item><title>Python Generated Code Guide</title><link>https://protobuf.dev/reference/python/python-generated/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/python/python-generated/</guid><description>Any differences between proto2 and proto3 generated code are highlighted - note that these differences are in the generated code as described in this document, not the base message classes/interfaces, which are the same in both versions. You should read the proto2 language guide and/or proto3 language guide before reading this document.
66
66
The Python Protocol Buffers implementation is a little different from C++ and Java. In Python, the compiler only outputs code to build descriptors for the generated classes, and a Python metaclass does the real work.</description></item><item><title>Python API</title><link>https://protobuf.dev/reference/python/api-docs-link/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/python/api-docs-link/</guid><description/></item><item><title>Ruby Generated Code Guide</title><link>https://protobuf.dev/reference/ruby/ruby-generated/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/ruby/ruby-generated/</guid><description>You should read the language guides for proto2 or proto3 before reading this document.
67
67
The protocol compiler for Ruby emits Ruby source files that use a DSL to define the message schema. However the DSL is still subject to change. In this guide we only describe the API of the generated messages, and not the DSL.
68
-
Compiler Invocation The protocol buffer compiler produces Ruby output when invoked with the --ruby_out= command-line flag.</description></item><item><title>Rust Reference</title><link>https://protobuf.dev/reference/rust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/</guid><description/></item><item><title>Protocol Buffers Edition 2023 Language Specification</title><link>https://protobuf.dev/reference/protobuf/edition-2023-spec/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/protobuf/edition-2023-spec/</guid><description>The syntax is specified using Extended Backus-Naur Form (EBNF):
68
+
Compiler Invocation The protocol buffer compiler produces Ruby output when invoked with the --ruby_out= command-line flag.</description></item><item><title>Rust Generated Code Guide</title><link>https://protobuf.dev/reference/rust/rust-generated/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/rust-generated/</guid><description>This page describes exactly what Rust code the protocol buffer compiler generates for any given protocol definition.
69
+
Any differences between proto2 and proto3 generated code are highlighted. You should read the proto2 language guide and/or proto3 language guide before reading this document.
70
+
Protobuf Rust Protobuf Rust is an implementation of protocol buffers designed to be able to sit on top of other existing protocol buffer implementations that we refer to as &lsquo;kernels&rsquo;.</description></item><item><title>Redaction in Rust</title><link>https://protobuf.dev/reference/rust/rust-redaction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/rust-redaction/</guid><description>Use the standard fmt::Debug (&quot;{:?}&quot; in format strings) on Protobuf messages for human-readable strings for logging, error messages, exceptions, and similar use cases. The output of this debug info is not intended to be machine-readable (unlike TextFormat and JSON which are not be used for debug output).
71
+
Using fmt::Debug enables redaction of some sensitive fields.
72
+
Note that under upb kernel this redaction is not yet implemented, but is expected to be added.</description></item><item><title>Building Rust Protos</title><link>https://protobuf.dev/reference/rust/building-rust-protos/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/building-rust-protos/</guid><description>The process of building a Rust library for a Protobuf definition is similar to other programming languages:
73
+
Use the language-agnostic proto_library rule:
74
+
proto_library( name = &#34;person_proto&#34;, srcs = [&#34;person.proto&#34;], ) Create a Rust library:
75
+
load(&#34;//third_party/protobuf/rust:defs.bzl&#34;, &#34;rust_proto_library&#34;) proto_library( name = &#34;person_proto&#34;, srcs = [&#34;person.proto&#34;], ) rust_proto_library( name = &#34;person_rust_proto&#34;, deps = [&#34;:person_proto&#34;], ) Use the library by including it in a Rust binary:
76
+
load(&#34;//third_party/bazel_rules/rules_rust/rust:defs.bzl&#34;, &#34;rust_binary&#34;) load(&#34;//third_party/protobuf/rust:defs.bzl&#34;, &#34;rust_proto_library&#34;) proto_library( name = &#34;person_proto&#34;, srcs = [&#34;person.</description></item><item><title>Rust Proto Design Decisions</title><link>https://protobuf.dev/reference/rust/rust-design-decisions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/rust-design-decisions/</guid><description>As with any library, Rust Protobuf is designed considering the needs of both Google&rsquo;s first-party usage of Rust as well that of external users. Choosing a path in that design space means that some choices made will not be optimal for some users in some cases, even if it is the right choice for the implementation overall.
77
+
This page covers some of the larger design decisions that the Rust Protobuf implementation makes and the considerations which led to those decisions.</description></item><item><title>Protocol Buffers Edition 2023 Language Specification</title><link>https://protobuf.dev/reference/protobuf/edition-2023-spec/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/protobuf/edition-2023-spec/</guid><description>The syntax is specified using Extended Backus-Naur Form (EBNF):
69
78
| alternation () grouping [] option (zero or one time) {} repetition (any number of times) Lexical Elements Letters and Digits letter = &#34;A&#34; ... &#34;Z&#34; | &#34;a&#34; ... &#34;z&#34; capitalLetter = &#34;A&#34; ... &#34;Z&#34; decimalDigit = &#34;0&#34; ... &#34;9&#34; octalDigit = &#34;0&#34; ... &#34;7&#34; hexDigit = &#34;0&#34; ... &#34;9&#34; | &#34;A&#34; ... &#34;F&#34; | &#34;a&#34; ... &#34;f&#34; Identifiers ident = letter { letter | decimalDigit | &#34;_&#34; } fullIdent = ident { &#34;.</description></item><item><title>Protocol Buffers Version 2 Language Specification</title><link>https://protobuf.dev/reference/protobuf/proto2-spec/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/protobuf/proto2-spec/</guid><description>The syntax is specified using Extended Backus-Naur Form (EBNF):
70
79
| alternation () grouping [] option (zero or one time) {} repetition (any number of times) For more information about using proto2, see the language guide.
71
80
Lexical Elements Letters and Digits letter = &#34;A&#34; ... &#34;Z&#34; | &#34;a&#34; ... &#34;z&#34; capitalLetter = &#34;A&#34; ... &#34;Z&#34; decimalDigit = &#34;0&#34; ... &#34;9&#34; octalDigit = &#34;0&#34; ... &#34;7&#34; hexDigit = &#34;0&#34; ... &#34;9&#34; | &#34;A&#34; .</description></item><item><title>Protocol Buffers Version 3 Language Specification</title><link>https://protobuf.dev/reference/protobuf/proto3-spec/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/protobuf/proto3-spec/</guid><description>The syntax is specified using Extended Backus-Naur Form (EBNF):
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reference Guides on Protocol Buffers Documentation</title><link>https://protobuf.dev/reference/</link><description>Recent content in Reference Guides on Protocol Buffers Documentation</description><generator>Hugo</generator><language>en</language><atom:link href="https://protobuf.dev/reference/index.xml" rel="self" type="application/rss+xml"/><item><title>Rust Reference</title><link>https://protobuf.dev/reference/rust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/</guid><description/></item><item><title>Other Languages</title><link>https://protobuf.dev/reference/other/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/other/</guid><description>While the current release includes compilers and APIs for C++, Java, Go, Ruby, C#, and Python, the compiler code is designed so that it&rsquo;s easy to add support for other languages. There are several ongoing projects to add new language implementations to Protocol Buffers, including C, Haskell, Perl, Rust, and more.
1
+
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rssversion="2.0"xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reference Guides on Protocol Buffers Documentation</title><link>https://protobuf.dev/reference/</link><description>Recent content in Reference Guides on Protocol Buffers Documentation</description><generator>Hugo</generator><language>en</language><atom:linkhref="https://protobuf.dev/reference/index.xml"rel="self"type="application/rss+xml"/><item><title>Other Languages</title><link>https://protobuf.dev/reference/other/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/other/</guid><description>While the current release includes compilers and APIs for C++, Java, Go, Ruby, C#, and Python, the compiler code is designed so that it&rsquo;s easy to add support for other languages. There are several ongoing projects to add new language implementations to Protocol Buffers, including C, Haskell, Perl, Rust, and more.
2
2
For a list of links to projects we know about, see the third-party add-ons wiki page.
3
3
Compiler Plugins protoc, the Protocol Buffers Compiler, can be extended to support new languages via plugins.</description></item></channel></rss>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rssversion="2.0"xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rust Reference on Protocol Buffers Documentation</title><link>https://protobuf.dev/reference/rust/</link><description>Recent content in Rust Reference on Protocol Buffers Documentation</description><generator>Hugo</generator><language>en</language><atom:linkhref="https://protobuf.dev/reference/rust/index.xml"rel="self"type="application/rss+xml"/><item><title>Rust Generated Code Guide</title><link>https://protobuf.dev/reference/rust/rust-generated/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/rust-generated/</guid><description>This page describes exactly what Rust code the protocol buffer compiler generates for any given protocol definition.
2
+
Any differences between proto2 and proto3 generated code are highlighted. You should read the proto2 language guide and/or proto3 language guide before reading this document.
3
+
Protobuf Rust Protobuf Rust is an implementation of protocol buffers designed to be able to sit on top of other existing protocol buffer implementations that we refer to as &lsquo;kernels&rsquo;.</description></item><item><title>Redaction in Rust</title><link>https://protobuf.dev/reference/rust/rust-redaction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/rust-redaction/</guid><description>Use the standard fmt::Debug (&quot;{:?}&quot; in format strings) on Protobuf messages for human-readable strings for logging, error messages, exceptions, and similar use cases. The output of this debug info is not intended to be machine-readable (unlike TextFormat and JSON which are not be used for debug output).
4
+
Using fmt::Debug enables redaction of some sensitive fields.
5
+
Note that under upb kernel this redaction is not yet implemented, but is expected to be added.</description></item><item><title>Building Rust Protos</title><link>https://protobuf.dev/reference/rust/building-rust-protos/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/building-rust-protos/</guid><description>The process of building a Rust library for a Protobuf definition is similar to other programming languages:
6
+
Use the language-agnostic proto_library rule:
7
+
proto_library( name = &#34;person_proto&#34;, srcs = [&#34;person.proto&#34;], ) Create a Rust library:
8
+
load(&#34;//third_party/protobuf/rust:defs.bzl&#34;, &#34;rust_proto_library&#34;) proto_library( name = &#34;person_proto&#34;, srcs = [&#34;person.proto&#34;], ) rust_proto_library( name = &#34;person_rust_proto&#34;, deps = [&#34;:person_proto&#34;], ) Use the library by including it in a Rust binary:
9
+
load(&#34;//third_party/bazel_rules/rules_rust/rust:defs.bzl&#34;, &#34;rust_binary&#34;) load(&#34;//third_party/protobuf/rust:defs.bzl&#34;, &#34;rust_proto_library&#34;) proto_library( name = &#34;person_proto&#34;, srcs = [&#34;person.</description></item><item><title>Rust Proto Design Decisions</title><link>https://protobuf.dev/reference/rust/rust-design-decisions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/reference/rust/rust-design-decisions/</guid><description>As with any library, Rust Protobuf is designed considering the needs of both Google&rsquo;s first-party usage of Rust as well that of external users. Choosing a path in that design space means that some choices made will not be optimal for some users in some cases, even if it is the right choice for the implementation overall.
10
+
This page covers some of the larger design decisions that the Rust Protobuf implementation makes and the considerations which led to those decisions.</description></item></channel></rss>
0 commit comments