blob: ba9c589d2bfda2b3336e88a6c32c3b6e53e6c5dc [file] [log] [blame] [view]
temporal40ee5512008-07-10 02:12:20 +00001Protocol Buffers - Google's data interchange format
Feng Xiao17007a62014-08-28 14:39:49 -07002===================================================
3
Colin Cross11fb7ae2018-11-04 17:34:26 -08004[![Build Status](https://travis-ci.org/google/protobuf.svg?branch=master)](https://travis-ci.org/google/protobuf) [![Build status](https://ci.appveyor.com/api/projects/status/73ctee6ua4w2ruin?svg=true)](https://ci.appveyor.com/project/protobuf/protobuf)
Feng Xiao0c7f6242014-12-12 17:22:35 -08005
temporal40ee5512008-07-10 02:12:20 +00006Copyright 2008 Google Inc.
Feng Xiao17007a62014-08-28 14:39:49 -07007
Feng Xiaoe9c00d92014-08-26 16:16:00 -07008https://developers.google.com/protocol-buffers/
temporal40ee5512008-07-10 02:12:20 +00009
Feng Xiaod0e01142016-01-21 17:06:38 -080010Overview
11--------
temporal40ee5512008-07-10 02:12:20 +000012
Feng Xiaod0e01142016-01-21 17:06:38 -080013Protocol Buffers (a.k.a., protobuf) are Google's language-neutral,
14platform-neutral, extensible mechanism for serializing structured data. You
Sylvain Baubeaue5ec85e2016-01-25 21:41:31 +010015can find [protobuf's documentation on the Google Developers site](https://developers.google.com/protocol-buffers/).
Feng Xiao64d86522016-01-06 16:25:35 -080016
Feng Xiaod0e01142016-01-21 17:06:38 -080017This README file contains protobuf installation instructions. To install
18protobuf, you need to install the protocol compiler (used to compile .proto
19files) and the protobuf runtime for your chosen programming language.
Feng Xiao64d86522016-01-06 16:25:35 -080020
Feng Xiaod0e01142016-01-21 17:06:38 -080021Protocol Compiler Installation
22------------------------------
Feng Xiao64d86522016-01-06 16:25:35 -080023
Feng Xiaod0e01142016-01-21 17:06:38 -080024The protocol compiler is written in C++. If you are using C++, please follow
25the [C++ Installation Instructions](src/README.md) to install protoc along
26with the C++ runtime.
Feng Xiao64d86522016-01-06 16:25:35 -080027
Feng Xiaod0e01142016-01-21 17:06:38 -080028For non-C++ users, the simplest way to install the protocol compiler is to
29download a pre-built binary from our release page:
Feng Xiao64d86522016-01-06 16:25:35 -080030
Feng Xiaod0e01142016-01-21 17:06:38 -080031 [https://github.com/google/protobuf/releases](https://github.com/google/protobuf/releases)
Feng Xiaode000522014-08-28 11:18:51 -070032
Feng Xiaod0e01142016-01-21 17:06:38 -080033In the downloads section of each release, you can find pre-built binaries in
34zip packages: protoc-$VERSION-$PLATFORM.zip. It contains the protoc binary
35as well as a set of standard .proto files distributed along with protobuf.
Feng Xiaode000522014-08-28 11:18:51 -070036
Feng Xiaod0e01142016-01-21 17:06:38 -080037If you are looking for an old version that is not available in the release
38page, check out the maven repo here:
Feng Xiaode000522014-08-28 11:18:51 -070039
Colin Cross11fb7ae2018-11-04 17:34:26 -080040 [http://repo1.maven.org/maven2/com/google/protobuf/protoc/](http://repo1.maven.org/maven2/com/google/protobuf/protoc/)
Feng Xiaode000522014-08-28 11:18:51 -070041
Feng Xiaod0e01142016-01-21 17:06:38 -080042These pre-built binaries are only provided for released versions. If you want
43to use the github master version at HEAD, or you need to modify protobuf code,
44or you are using C++, it's recommended to build your own protoc binary from
45source.
temporal40ee5512008-07-10 02:12:20 +000046
Sylvain Baubeaue5ec85e2016-01-25 21:41:31 +010047If you would like to build protoc binary from source, see the [C++ Installation
Feng Xiaod0e01142016-01-21 17:06:38 -080048Instructions](src/README.md).
temporal40ee5512008-07-10 02:12:20 +000049
Feng Xiaod0e01142016-01-21 17:06:38 -080050Protobuf Runtime Installation
51-----------------------------
temporal40ee5512008-07-10 02:12:20 +000052
Feng Xiaod0e01142016-01-21 17:06:38 -080053Protobuf supports several different programming languages. For each programming
54language, you can find instructions in the corresponding source directory about
55how to install protobuf runtime for that specific language:
temporal40ee5512008-07-10 02:12:20 +000056
Colin Cross11fb7ae2018-11-04 17:34:26 -080057| Language | Source |
58|--------------------------------------|-------------------------------------------------------|
59| C++ (include C++ runtime and protoc) | [src](src) |
60| Java | [java](java) |
61| Python | [python](python) |
62| Objective-C | [objectivec](objectivec) |
63| C# | [csharp](csharp) |
64| JavaNano | [javanano](javanano) |
65| JavaScript | [js](js) |
66| Ruby | [ruby](ruby) |
67| Go | [golang/protobuf](https://github.com/golang/protobuf) |
68| PHP | TBD |
temporal40ee5512008-07-10 02:12:20 +000069
temporal40ee5512008-07-10 02:12:20 +000070
Colin Cross11fb7ae2018-11-04 17:34:26 -080071Usage
72-----
temporal40ee5512008-07-10 02:12:20 +000073
74The complete documentation for Protocol Buffers is available via the
75web at:
76
Colin Cross11fb7ae2018-11-04 17:34:26 -080077 https://developers.google.com/protocol-buffers/