README.md 3.71 KB
Newer Older
temporal's avatar
temporal committed
1
Protocol Buffers - Google's data interchange format
2 3
===================================================

4
[![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)
5

temporal's avatar
temporal committed
6
Copyright 2008 Google Inc.
7

8
https://developers.google.com/protocol-buffers/
temporal's avatar
temporal committed
9

Feng Xiao's avatar
Feng Xiao committed
10 11
Overview
--------
temporal's avatar
temporal committed
12

Feng Xiao's avatar
Feng Xiao committed
13 14
Protocol Buffers (a.k.a., protobuf) are Google's language-neutral,
platform-neutral, extensible mechanism for serializing structured data. You
15
can find [protobuf's documentation on the Google Developers site](https://developers.google.com/protocol-buffers/).
16

Feng Xiao's avatar
Feng Xiao committed
17 18 19
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.
20

Feng Xiao's avatar
Feng Xiao committed
21 22
Protocol Compiler Installation
------------------------------
23

Feng Xiao's avatar
Feng Xiao committed
24 25 26
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.
27

Feng Xiao's avatar
Feng Xiao committed
28 29
For non-C++ users, the simplest way to install the protocol compiler is to
download a pre-built binary from our release page:
30

Feng Xiao's avatar
Feng Xiao committed
31
  [https://github.com/google/protobuf/releases](https://github.com/google/protobuf/releases)
32

Feng Xiao's avatar
Feng Xiao committed
33 34 35
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.
36

Feng Xiao's avatar
Feng Xiao committed
37 38
If you are looking for an old version that is not available in the release
page, check out the maven repo here:
39

Feng Xiao's avatar
Feng Xiao committed
40
  [http://repo1.maven.org/maven2/com/google/protobuf/protoc/](http://repo1.maven.org/maven2/com/google/protobuf/protoc/)
41

Feng Xiao's avatar
Feng Xiao committed
42 43 44 45
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.
temporal's avatar
temporal committed
46

47
If you would like to build protoc binary from source, see the [C++ Installation
Feng Xiao's avatar
Feng Xiao committed
48
Instructions](src/README.md).
temporal's avatar
temporal committed
49

Feng Xiao's avatar
Feng Xiao committed
50 51
Protobuf Runtime Installation
-----------------------------
temporal's avatar
temporal committed
52

Feng Xiao's avatar
Feng Xiao committed
53 54 55
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:
temporal's avatar
temporal committed
56

Feng Xiao's avatar
Feng Xiao committed
57 58 59 60 61 62 63 64 65 66 67 68
| Language                             | Source                                                |
|--------------------------------------|-------------------------------------------------------|
| C++ (include C++ runtime and protoc) | [src](src)                                            |
| Java                                 | [java](java)                                          |
| Python                               | [python](python)                                      |
| Objective-C                          | [objectivec](objectivec)                              |
| C#                                   | [csharp](csharp)                                      |
| JavaNano                             | [javanano](javanano)                                  |
| JavaScript                           | [js](js)                                              |
| Ruby                                 | [ruby](ruby)                                          |
| Go                                   | [golang/protobuf](https://github.com/golang/protobuf) |
| PHP                                  | TBD                                                   |
temporal's avatar
temporal committed
69

temporal's avatar
temporal committed
70 71

Usage
72
-----
temporal's avatar
temporal committed
73 74 75 76

The complete documentation for Protocol Buffers is available via the
web at:

77
    https://developers.google.com/protocol-buffers/