2008-07-10 02:12:20 +00:00
|
|
|
Protocol Buffers - Google's data interchange format
|
2014-08-28 21:39:49 +00:00
|
|
|
===================================================
|
|
|
|
|
2008-07-10 02:12:20 +00:00
|
|
|
Copyright 2008 Google Inc.
|
2014-08-28 21:39:49 +00:00
|
|
|
|
2014-08-26 23:16:00 +00:00
|
|
|
https://developers.google.com/protocol-buffers/
|
2008-07-10 02:12:20 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
Overview
|
|
|
|
--------
|
2008-07-10 02:12:20 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
Protocol Buffers (a.k.a., protobuf) are Google's language-neutral,
|
|
|
|
platform-neutral, extensible mechanism for serializing structured data. You
|
2016-01-25 20:41:31 +00:00
|
|
|
can find [protobuf's documentation on the Google Developers site](https://developers.google.com/protocol-buffers/).
|
2016-01-07 00:25:35 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
This README file contains protobuf installation instructions. To install
|
|
|
|
protobuf, you need to install the protocol compiler (used to compile .proto
|
|
|
|
files) and the protobuf runtime for your chosen programming language.
|
2016-01-07 00:25:35 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
Protocol Compiler Installation
|
|
|
|
------------------------------
|
2016-01-07 00:25:35 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
The protocol compiler is written in C++. If you are using C++, please follow
|
|
|
|
the [C++ Installation Instructions](src/README.md) to install protoc along
|
|
|
|
with the C++ runtime.
|
2016-01-07 00:25:35 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
For non-C++ users, the simplest way to install the protocol compiler is to
|
|
|
|
download a pre-built binary from our release page:
|
2016-01-07 00:25:35 +00:00
|
|
|
|
2018-08-22 18:55:30 +00:00
|
|
|
[https://github.com/protocolbuffers/protobuf/releases](https://github.com/protocolbuffers/protobuf/releases)
|
2014-08-28 18:18:51 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
In the downloads section of each release, you can find pre-built binaries in
|
|
|
|
zip packages: protoc-$VERSION-$PLATFORM.zip. It contains the protoc binary
|
|
|
|
as well as a set of standard .proto files distributed along with protobuf.
|
2014-08-28 18:18:51 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
If you are looking for an old version that is not available in the release
|
|
|
|
page, check out the maven repo here:
|
2014-08-28 18:18:51 +00:00
|
|
|
|
2017-06-23 13:25:03 +00:00
|
|
|
[https://repo1.maven.org/maven2/com/google/protobuf/protoc/](https://repo1.maven.org/maven2/com/google/protobuf/protoc/)
|
2014-08-28 18:18:51 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
These pre-built binaries are only provided for released versions. If you want
|
|
|
|
to use the github master version at HEAD, or you need to modify protobuf code,
|
|
|
|
or you are using C++, it's recommended to build your own protoc binary from
|
|
|
|
source.
|
2008-07-10 02:12:20 +00:00
|
|
|
|
2016-01-25 20:41:31 +00:00
|
|
|
If you would like to build protoc binary from source, see the [C++ Installation
|
2016-01-22 01:06:38 +00:00
|
|
|
Instructions](src/README.md).
|
2008-07-10 02:12:20 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
Protobuf Runtime Installation
|
|
|
|
-----------------------------
|
2008-07-10 02:12:20 +00:00
|
|
|
|
2016-01-22 01:06:38 +00:00
|
|
|
Protobuf supports several different programming languages. For each programming
|
|
|
|
language, you can find instructions in the corresponding source directory about
|
|
|
|
how to install protobuf runtime for that specific language:
|
2008-07-10 02:12:20 +00:00
|
|
|
|
2018-03-27 23:11:15 +00:00
|
|
|
| Language | Source | Ubuntu | MacOS | Windows |
|
|
|
|
|--------------------------------------|-------------------------------------------------------------|--------|-------|---------|
|
2018-08-13 21:53:27 +00:00
|
|
|
| C++ (include C++ runtime and protoc) | [src](src) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-cpp_distcheck.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fcpp_distcheck%2Fcontinuous) [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-bazel.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fbazel%2Fcontinuous) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-cpp.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fcpp%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-cpp_distcheck.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fcpp_distcheck%2Fcontinuous) | [![Build status](https://ci.appveyor.com/api/projects/status/73ctee6ua4w2ruin?svg=true)](https://ci.appveyor.com/project/protobuf/protobuf) |
|
2018-03-27 23:11:15 +00:00
|
|
|
| Java | [java](java) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-java_compatibility.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fjava_compatibility%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-java_jdk7.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fjava_jdk7%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-java_oracle7.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fjava_oracle7%2Fcontinuous) | | |
|
|
|
|
| Python | [python](python) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-python.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fpython%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-python_compatibility.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fpython_compatibility%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-python_cpp.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fpython_cpp%2Fcontinuous) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-python.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fpython%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-python_cpp.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fpython_cpp%2Fcontinuous) | |
|
|
|
|
| Objective-C | [objectivec](objectivec) | | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-objectivec_cocoapods_integration.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fobjectivec_cocoapods_integration%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-objectivec_ios_debug.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fobjectivec_ios_debug%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-objectivec_ios_release.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fobjectivec_ios_release%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-objectivec_osx.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fobjectivec_osx%2Fcontinuous) | |
|
|
|
|
| C# | [csharp](csharp) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-csharp.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fcsharp%2Fcontinuous) | | [![Build status](https://ci.appveyor.com/api/projects/status/73ctee6ua4w2ruin?svg=true)](https://ci.appveyor.com/project/protobuf/protobuf) |
|
|
|
|
| JavaScript | [js](js) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-javascript.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fjavascript%2Fcontinuous) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-javascript.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fjavascript%2Fcontinuous) | |
|
2018-05-24 23:33:51 +00:00
|
|
|
| Ruby | [ruby](ruby) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-ruby_all.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fruby_all%2Fcontinuous) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-ruby21.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fruby21%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-ruby22.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fruby22%2Fcontinuous) | |
|
2018-03-27 23:11:15 +00:00
|
|
|
| Go | [golang/protobuf](https://github.com/golang/protobuf) | | | |
|
|
|
|
| PHP | [php](php) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-php_all.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2Fphp_all%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/linux-32-bit.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fubuntu%2F32-bit%2Fcontinuous) | [![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-php5.6_mac.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fphp5.6_mac%2Fcontinuous)<br/>[![Build status](https://storage.googleapis.com/protobuf-kokoro-results/status-badge/macos-php7.0_mac.png)](https://fusion.corp.google.com/projectanalysis/current/KOKORO/prod:protobuf%2Fgithub%2Fmaster%2Fmacos%2Fphp7.0_mac%2Fcontinuous) | |
|
2018-09-21 11:47:31 +00:00
|
|
|
| Dart | [dart-lang/protobuf](https://github.com/dart-lang/protobuf) | [![Build Status](https://travis-ci.org/dart-lang/protobuf.svg?branch=master)](https://travis-ci.org/dart-lang/protobuf) | | |
|
2008-07-21 20:28:30 +00:00
|
|
|
|
2017-09-08 22:44:09 +00:00
|
|
|
Quick Start
|
|
|
|
-----------
|
2008-07-10 02:12:20 +00:00
|
|
|
|
2017-09-08 22:44:09 +00:00
|
|
|
The best way to learn how to use protobuf is to follow the tutorials in our
|
|
|
|
developer guide:
|
|
|
|
|
|
|
|
https://developers.google.com/protocol-buffers/docs/tutorials
|
|
|
|
|
|
|
|
If you want to learn from code examples, take a look at the examples in the
|
|
|
|
[examples](examples) directory.
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
-------------
|
2008-07-10 02:12:20 +00:00
|
|
|
|
|
|
|
The complete documentation for Protocol Buffers is available via the
|
|
|
|
web at:
|
|
|
|
|
2017-02-18 21:05:19 +00:00
|
|
|
https://developers.google.com/protocol-buffers/
|