my rage from v8 is spilling over
Go to file
Paul Yang 7f3e237071 Merge 3.2.x branch into master (#2648)
* Down-integrate internal changes to github.

* Update conformance test failure list.

* Explicitly import used class in nano test to avoid random test fail.

* Update _GNUC_VER to use the correct implementation of atomic operation
on Mac.

* maps_test.js: check whether Symbol is defined before using it (#2524)

Symbol is not yet available on older versions of Node.js and so this
test fails with them. This change just directly checks whether Symbol is
available before we try to use it.

* Added well_known_types_embed.cc to CLEANFILES so that it gets cleaned up

* Updated Makefile.am to fix out-of-tree builds

* Added Bazel genrule for generating well_known_types_embed.cc

In pull request #2517 I made this change for the CMake and autotools
builds but forgot to do it for the Bazel build.

* Update _GNUC_VER to use the correct implementation of atomic operation on Mac.

* Add new js file in extra dist.

* Bump version number to 3.2.0

* Fixed issue with autoloading - Invalid paths (#2538)

* PHP fix int64 decoding (#2516)

* fix int64 decoding

* fix int64 decoding + tests

* Fix int64 decoding on 32-bit machines.

* Fix warning in compiler/js/embed.cc

embed.cc: In function ‘std::string CEscape(const string&)’:
embed.cc:51:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < str.size(); ++i) {
                                ^

* Fix include in auto-generated well_known_types_embed.cc

Restore include style fix (e3da722) that has been trampled by
auto-generation of well_known_types_embed.cc

* Fixed cross compilations with the Autotools build

Pull request #2517 caused cross compilations to start failing, because
the js_embed binary was being built to run on the target platform
instead of on the build machine. This change updates the Autotools build
to use the AX_PROG_CXX_FOR_BUILD macro to find a suitable compiler for
the build machine and always use that when building js_embed.

* Minor fix for autocreated object repeated fields and maps.

- If setting/clearing a repeated field/map that was objects, check the class
  before checking the autocreator.
- Just to be paranoid, don’t mutate within copy/mutableCopy for the autocreated
  classes to ensure there is less chance of issues if someone does something
  really crazy threading wise.
- Some more tests for the internal AutocreatedArray/AutocreatedDictionary
  classes to ensure things are working as expected.
- Add Xcode 8.2 to the full_mac_build.sh supported list.

* Fix generation of extending nested messages in JavaScript (#2439)

* Fix generation of extending nested messages in JavaScript

* Added missing test8.proto to build

* Fix generated code when there is no namespace but there is enum definition.

* Decoding unknown field should succeed.

* Add embed.cc in src/Makefile.am to fix dist check.

* Fixed "make distcheck" for the Autotools build

To make the test pass I needed to fix out-of-tree builds and update
EXTRA_DIST and CLEANFILES.

* Remove redundent embed.cc from src/Makefile.am

* Update version number to 3.2.0-rc.1 (#2578)

* Change protoc-artifacts version to 3.2.0-rc.1

* Update version number to 3.2.0rc2

* Update change logs for 3.2.0 release.

* Update php README

* Update upb, fixes some bugs (including a hash table problem). (#2611)

* Update upb, fixes some bugs (including a hash table problem).

* Ruby: added a test for the previous hash table corruption.

Verified that this triggers the bug in the currently released
version.

* Ruby: bugfix for SEGV.

* Ruby: removed old code for dup'ing defs.

* Reverting deployment target to 7.0 (#2618)

The Protobuf library doesn’t require the 7.1 deployment target so
reverting it back to 7.0

* Fix typo that breaks builds on big-endian (#2632)

* Bump version number to 3.2.0
2017-01-31 09:17:32 -08:00
benchmarks Added C++ benchmark. (#1525) 2016-09-23 11:07:45 -07:00
cmake Fixed "make check" for cmake build 2016-12-19 14:38:21 -08:00
conformance A few more cases for binary conformance tests. (#2500) 2017-01-06 16:58:21 -08:00
csharp Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
docs Add link to Elm proto plugin 2016-12-28 01:02:12 +00:00
editors [master] Add dependency cl. Fixes google/protobuf#295. 2016-08-05 15:13:12 +08:00
examples Integrate from internal code base. 2016-07-13 13:48:40 -07:00
java Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
javanano Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
jenkins Update commit id in Dockerfile to trigger update. (#2467) 2016-12-08 14:39:20 -08:00
js Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
m4 Fixed cross compilations with the Autotools build 2017-01-03 13:14:39 -08:00
more_tests Add makefile for extended tests to be run before release. 2010-01-12 22:45:15 +00:00
objectivec Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
php Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
protoc-artifacts Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
python Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
ruby Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
src Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
third_party Added C++ benchmark. (#1525) 2016-09-23 11:07:45 -07:00
util/python Remove hack for building Python support with Bazel. 2016-02-25 12:52:21 -08:00
.gitignore Auto-generate well_known_types_embed.cc 2016-12-19 14:38:21 -08:00
.gitmodules Added C++ benchmark. (#1525) 2016-09-23 11:07:45 -07:00
.travis.yml Add python compatibility tests against v2.5.0 amd run on Travis. 2017-01-26 11:05:16 -08:00
appveyor.bat Rename UNICODE to protobuf_UNICODE 2016-09-01 17:18:22 -07:00
appveyor.yml Use "appveyor DownloadFile" 2016-10-10 11:44:21 -07:00
autogen.sh Update gmock links. 2016-08-25 14:28:59 -07:00
BUILD Add a proto_lang_toolchain for Java 2017-01-12 12:51:04 -05:00
CHANGES.txt Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
composer.json Fixed issue with autoloading - Invalid paths (#2538) 2016-12-28 13:33:36 -08:00
configure.ac Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
CONTRIBUTORS.txt Add nano proto authors and update LICENSE file to include Android.mk. 2014-11-20 14:27:46 -08:00
generate_changelog.py generate_changelog.py: flush output so piping works correctly. 2016-12-09 16:13:18 -08:00
generate_descriptor_proto.sh Fix #2071 replacing /bin/sh with bash 2016-09-07 14:46:50 +10:00
gmock.BUILD Update repo to use google test 2016-09-09 13:10:56 -04:00
LICENSE Add support for POWER Linux 2015-11-03 14:49:42 -08:00
Makefile.am Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
post_process_dist.sh Add php files for make dist. 2016-10-10 11:44:21 -07:00
protobuf-lite.pc.in Uncomment conflict fields from pkg-config files. 2015-05-12 17:50:05 +02:00
protobuf.bzl Update genfiles paths to work with a different execroot arrangement 2017-01-25 14:10:56 -05:00
protobuf.pc.in Uncomment conflict fields from pkg-config files. 2015-05-12 17:50:05 +02:00
Protobuf.podspec Merge 3.2.x branch into master (#2648) 2017-01-31 09:17:32 -08:00
README.md Add a badge for bazel build status. 2016-12-12 14:58:13 -08:00
six.BUILD Add srcs_version = "PY2AND3" in BUILD files 2015-12-03 13:16:06 -08:00
tests.sh Add python compatibility tests against v2.5.0 amd run on Travis. 2017-01-26 11:05:16 -08:00
update_file_lists.sh Fix bugs on windows 2015-08-25 17:58:48 -07:00
WORKSPACE Fix gson dependency. 2016-09-21 22:51:36 +00:00

Protocol Buffers - Google's data interchange format

Build Status Build status Build Status Build Status Build Status

Copyright 2008 Google Inc.

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

Overview

Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. You can find protobuf's documentation on the Google Developers site.

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.

Protocol Compiler Installation

The protocol compiler is written in C++. If you are using C++, please follow the C++ Installation Instructions to install protoc along with the C++ runtime.

For non-C++ users, the simplest way to install the protocol compiler is to download a pre-built binary from our release page:

https://github.com/google/protobuf/releases

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.

If you are looking for an old version that is not available in the release page, check out the maven repo here:

http://repo1.maven.org/maven2/com/google/protobuf/protoc/

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.

If you would like to build protoc binary from source, see the C++ Installation Instructions.

Protobuf Runtime Installation

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:

Language Source
C++ (include C++ runtime and protoc) src
Java java
Python python
Objective-C objectivec
C# csharp
JavaNano javanano
JavaScript js
Ruby ruby
Go golang/protobuf
PHP php

Usage

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

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