About this project

Protocol Buffers (protobuf) is Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. The repository hosts the protocol compiler (protoc), which compiles .proto files, and runtime support for several programming languages. The README provides installation instructions covering both the protocol compiler and language-specific runtimes. For C++ users, protoc and the C++ runtime are built from source using the instructions in the src directory. Non-C++ users can download pre-built protoc binaries from the GitHub release page, packaged as protoc-$VERSION-$PLATFORM.zip, which include the binary and standard .proto files. Older versions are also available from Maven. Supported languages and runtime locations include C++ (src), Java, Python, Objective-C, C#, Ruby, PHP, Go (separate repository), Dart (dart-lang/protobuf), and JavaScript (protocolbuffers/protobuf-javascript). Build integration is documented for Bazel with both Bzlmod and the legacy WORKSPACE system. Users can add a dependency on protobuf in MODULE.bazel or via http_archive with the required load statements. Learning resources include tutorials in the protobuf developer guide at protobuf.dev and code examples in the examples directory. The project has a version support policy and a Google Group for developer community discussions and updates.