{"id":25962565,"url":"https://github.com/google/protobuf","last_synced_at":"2025-03-04T20:01:52.308Z","repository":{"id":20088389,"uuid":"23357588","full_name":"protocolbuffers/protobuf","owner":"protocolbuffers","description":"Protocol Buffers - Google's data interchange format","archived":false,"fork":false,"pushed_at":"2025-02-27T17:53:57.000Z","size":182194,"stargazers_count":66701,"open_issues_count":260,"forks_count":15627,"subscribers_count":2045,"default_branch":"main","last_synced_at":"2025-02-27T19:05:00.728Z","etag":null,"topics":["marshalling","protobuf","protobuf-runtime","protoc","protocol-buffers","protocol-compiler","rpc","serialization"],"latest_commit_sha":null,"homepage":"http://protobuf.dev","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/protocolbuffers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-08-26T15:52:15.000Z","updated_at":"2025-02-27T17:41:47.000Z","dependencies_parsed_at":"2024-03-31T19:41:56.671Z","dependency_job_id":"84c1b4d6-75f9-44a7-8979-275636d0b4f1","html_url":"https://github.com/protocolbuffers/protobuf","commit_stats":{"total_commits":16174,"total_committers":1232,"mean_commits":"13.128246753246753","dds":0.8605168789415111,"last_synced_commit":"bf068d9e0e62dd5a1ea1c3660cb7b9385c6b8262"},"previous_names":["google/protobuf"],"tags_count":369,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protocolbuffers%2Fprotobuf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protocolbuffers%2Fprotobuf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protocolbuffers%2Fprotobuf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protocolbuffers%2Fprotobuf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/protocolbuffers","download_url":"https://codeload.github.com/protocolbuffers/protobuf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241286625,"owners_count":19938961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["marshalling","protobuf","protobuf-runtime","protoc","protocol-buffers","protocol-compiler","rpc","serialization"],"created_at":"2025-03-04T20:01:19.767Z","updated_at":"2025-03-04T20:01:52.284Z","avatar_url":"https://github.com/protocolbuffers.png","language":"C++","readme":"Protocol Buffers - Google's data interchange format\n===================================================\n\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/protocolbuffers/protobuf/badge)](https://securityscorecards.dev/viewer/?uri=github.com/protocolbuffers/protobuf)\n\nCopyright 2023 Google LLC\n\nOverview\n--------\n\nProtocol Buffers (a.k.a., protobuf) are Google's language-neutral,\nplatform-neutral, extensible mechanism for serializing structured data. You\ncan learn more about it in [protobuf's documentation](https://protobuf.dev).\n\nThis README file contains protobuf installation instructions. To install\nprotobuf, you need to install the protocol compiler (used to compile .proto\nfiles) and the protobuf runtime for your chosen programming language.\n\nWorking With Protobuf Source Code\n---------------------------------\n\nMost users will find working from\n[supported releases](https://github.com/protocolbuffers/protobuf/releases) to be\nthe easiest path.\n\nIf you choose to work from the head revision of the main branch your build will\noccasionally be broken by source-incompatible changes and insufficiently-tested\n(and therefore broken) behavior.\n\nIf you are using C++ or otherwise need to build protobuf from source as a part\nof your project, you should pin to a release commit on a release branch.\n\nThis is because even release branches can experience some instability in between\nrelease commits.\n\n### Bazel with Bzlmod\n\nProtobuf supports\n[Bzlmod](https://bazel.build/external/module) with Bazel 7 +.\nUsers should specify a dependency on protobuf in their MODULE.bazel file as\nfollows.\n\n```\nbazel_dep(name = \"protobuf\", version = \u003cVERSION\u003e)\n```\n\nUsers can optionally override the repo name, such as for compatibility with\nWORKSPACE.\n\n```\nbazel_dep(name = \"protobuf\", version = \u003cVERSION\u003e, repo_name = \"com_google_protobuf\")\n```\n\n### Bazel with WORKSPACE\n\nUsers can also add the following to their legacy\n[WORKSPACE](https://bazel.build/external/overview#workspace-system) file.\n\nNote that with the release of 30.x there are a few more load statements to\nproperly set up rules_java and rules_python.\n\n```\nhttp_archive(\n    name = \"com_google_protobuf\",\n    strip_prefix = \"protobuf-VERSION\",\n    sha256 = ...,\n    url = ...,\n)\n\nload(\"@com_google_protobuf//:protobuf_deps.bzl\", \"protobuf_deps\")\n\nprotobuf_deps()\n\nload(\"@rules_java//java:rules_java_deps.bzl\", \"rules_java_dependencies\")\n\nrules_java_dependencies()\n\nload(\"@rules_java//java:repositories.bzl\", \"rules_java_toolchains\")\n\nrules_java_toolchains()\n\nload(\"@rules_python//python:repositories.bzl\", \"py_repositories\")\n\npy_repositories()\n```\n\nProtobuf Compiler Installation\n------------------------------\n\nThe protobuf compiler is written in C++. If you are using C++, please follow\nthe [C++ Installation Instructions](src/README.md) to install protoc along\nwith the C++ runtime.\n\nFor non-C++ users, the simplest way to install the protocol compiler is to\ndownload a pre-built binary from our [GitHub release page](https://github.com/protocolbuffers/protobuf/releases).\n\nIn the downloads section of each release, you can find pre-built binaries in\nzip packages: `protoc-$VERSION-$PLATFORM.zip`. It contains the protoc binary\nas well as a set of standard `.proto` files distributed along with protobuf.\n\nIf you are looking for an old version that is not available in the release\npage, check out the [Maven repository](https://repo1.maven.org/maven2/com/google/protobuf/protoc/).\n\nThese pre-built binaries are only provided for released versions. If you want\nto use the github main version at HEAD, or you need to modify protobuf code,\nor you are using C++, it's recommended to build your own protoc binary from\nsource.\n\nIf you would like to build protoc binary from source, see the [C++ Installation Instructions](src/README.md).\n\nProtobuf Runtime Installation\n-----------------------------\n\nProtobuf supports several different programming languages. For each programming\nlanguage, you can find instructions in the corresponding source directory about\nhow to install protobuf runtime for that specific language:\n\n| Language                             | Source                                                      |\n|--------------------------------------|-------------------------------------------------------------|\n| C++ (include C++ runtime and protoc) | [src](src)                                                  |\n| Java                                 | [java](java)                                                |\n| Python                               | [python](python)                                            |\n| Objective-C                          | [objectivec](objectivec)                                    |\n| C#                                   | [csharp](csharp)                                            |\n| Ruby                                 | [ruby](ruby)                                                |\n| Go                                   | [protocolbuffers/protobuf-go](https://github.com/protocolbuffers/protobuf-go)|\n| PHP                                  | [php](php)                                                  |\n| Dart                                 | [dart-lang/protobuf](https://github.com/dart-lang/protobuf) |\n| JavaScript                           | [protocolbuffers/protobuf-javascript](https://github.com/protocolbuffers/protobuf-javascript)|\n\nQuick Start\n-----------\n\nThe best way to learn how to use protobuf is to follow the [tutorials in our\ndeveloper guide](https://protobuf.dev/getting-started).\n\nIf you want to learn from code examples, take a look at the examples in the\n[examples](examples) directory.\n\nDocumentation\n-------------\n\nThe complete documentation is available at the [Protocol Buffers doc site](https://protobuf.dev).\n\nSupport Policy\n--------------\n\nRead about our [version support policy](https://protobuf.dev/version-support/)\nto stay current on support timeframes for the language libraries.\n\nDeveloper Community\n-------------------\n\nTo be alerted to upcoming changes in Protocol Buffers and connect with protobuf developers and users,\n[join the Google Group](https://groups.google.com/g/protobuf).\n","funding_links":[],"categories":["Data Encoding","Google ProtocolBuffers repos","C++","库","Solutions","II. Databases, search engines, big data and machine learning","Projects built with Bazel","Serialization","Projects","Data structures","其他"],"sub_categories":["Protocol Buffers","实用工具","Data Structures","2. Data structures","Google projects"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fprotobuf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fprotobuf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fprotobuf/lists"}