实例介绍
Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。
【实例截图】
【核心代码】
5967c03d-15c9-4de7-b4cb-a3bb2f670282
└── protobuf-3.4.0
├── aclocal.m4
├── ar-lib
├── autogen.sh
├── benchmarks
│ ├── cpp_benchmark.cc
│ ├── generate_datasets.cc
│ ├── Makefile.am
│ └── Makefile.in
├── BUILD
├── CHANGES.txt
├── cmake
│ ├── CMakeLists.txt
│ ├── examples.cmake
│ ├── extract_includes.bat.in
│ ├── install.cmake
│ ├── libprotobuf.cmake
│ ├── libprotobuf-lite.cmake
│ ├── libprotoc.cmake
│ ├── protobuf-config.cmake.in
│ ├── protobuf-config-version.cmake.in
│ ├── protobuf-module.cmake.in
│ ├── protobuf-options.cmake
│ ├── protoc.cmake
│ ├── README.md
│ └── tests.cmake
├── compile
├── config.guess
├── config.h.in
├── config.sub
├── configure
├── configure.ac
├── conformance
│ ├── conformance_cpp.cc
│ ├── ConformanceJava.java
│ ├── ConformanceJavaLite.java
│ ├── conformance_objc.m
│ ├── conformance_php.php
│ ├── conformance.proto
│ ├── conformance_python.py
│ ├── conformance_ruby.rb
│ ├── conformance_test.cc
│ ├── conformance_test.h
│ ├── conformance_test_runner.cc
│ ├── failure_list_cpp.txt
│ ├── failure_list_csharp.txt
│ ├── failure_list_java.txt
│ ├── failure_list_js.txt
│ ├── failure_list_objc.txt
│ ├── failure_list_php_c.txt
│ ├── failure_list_php.txt
│ ├── failure_list_python_cpp.txt
│ ├── failure_list_python-post26.txt
│ ├── failure_list_python.txt
│ ├── failure_list_ruby.txt
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── README.md
│ └── third_party
│ └── jsoncpp
│ ├── jsoncpp.cpp
│ └── json.h
├── CONTRIBUTORS.txt
├── depcomp
├── editors
│ ├── protobuf-mode.el
│ ├── proto.vim
│ └── README.txt
├── examples
│ ├── add_person.cc
│ ├── add_person.go
│ ├── AddPerson.java
│ ├── add_person.py
│ ├── add_person_test.go
│ ├── addressbook.proto
│ ├── CMakeLists.txt
│ ├── list_people.cc
│ ├── list_people.go
│ ├── ListPeople.java
│ ├── list_people.py
│ ├── list_people_test.go
│ ├── Makefile
│ └── README.txt
├── generate_descriptor_proto.sh
├── gmock
│ ├── aclocal.m4
│ ├── build-aux
│ │ ├── compile
│ │ ├── config.guess
│ │ ├── config.h.in
│ │ ├── config.sub
│ │ ├── depcomp
│ │ ├── install-sh
│ │ ├── ltmain.sh
│ │ ├── missing
│ │ └── test-driver
│ ├── CHANGES
│ ├── CMakeLists.txt
│ ├── configure
│ ├── configure.ac
│ ├── CONTRIBUTORS
│ ├── fused-src
│ │ ├── gmock
│ │ │ └── gmock.h
│ │ ├── gmock-gtest-all.cc
│ │ ├── gmock_main.cc
│ │ └── gtest
│ │ └── gtest.h
│ ├── gtest
│ │ ├── aclocal.m4
│ │ ├── build-aux
│ │ │ ├── compile
│ │ │ ├── config.guess
│ │ │ ├── config.h.in
│ │ │ ├── config.sub
│ │ │ ├── depcomp
│ │ │ ├── install-sh
│ │ │ ├── ltmain.sh
│ │ │ ├── missing
│ │ │ └── test-driver
│ │ ├── CHANGES
│ │ ├── cmake
│ │ │ └── internal_utils.cmake
│ │ ├── CMakeLists.txt
│ │ ├── codegear
│ │ │ ├── gtest_all.cc
│ │ │ ├── gtest.cbproj
│ │ │ ├── gtest.groupproj
│ │ │ ├── gtest_link.cc
│ │ │ ├── gtest_main.cbproj
│ │ │ └── gtest_unittest.cbproj
│ │ ├── configure
│ │ ├── configure.ac
│ │ ├── CONTRIBUTORS
│ │ ├── fused-src
│ │ │ └── gtest
│ │ │ ├── gtest-all.cc
│ │ │ ├── gtest.h
│ │ │ └── gtest_main.cc
│ │ ├── include
│ │ │ └── gtest
│ │ │ ├── gtest-death-test.h
│ │ │ ├── gtest.h
│ │ │ ├── gtest-message.h
│ │ │ ├── gtest-param-test.h
│ │ │ ├── gtest-param-test.h.pump
│ │ │ ├── gtest_pred_impl.h
│ │ │ ├── gtest-printers.h
│ │ │ ├── gtest_prod.h
│ │ │ ├── gtest-spi.h
│ │ │ ├── gtest-test-part.h
│ │ │ ├── gtest-typed-test.h
│ │ │ └── internal
│ │ │ ├── gtest-death-test-internal.h
│ │ │ ├── gtest-filepath.h
│ │ │ ├── gtest-internal.h
│ │ │ ├── gtest-linked_ptr.h
│ │ │ ├── gtest-param-util-generated.h
│ │ │ ├── gtest-param-util-generated.h.pump
│ │ │ ├── gtest-param-util.h
│ │ │ ├── gtest-port.h
│ │ │ ├── gtest-string.h
│ │ │ ├── gtest-tuple.h
│ │ │ ├── gtest-tuple.h.pump
│ │ │ ├── gtest-type-util.h
│ │ │ └── gtest-type-util.h.pump
│ │ ├── LICENSE
│ │ ├── m4
│ │ │ ├── acx_pthread.m4
│ │ │ ├── gtest.m4
│ │ │ ├── libtool.m4
│ │ │ ├── lt~obsolete.m4
│ │ │ ├── ltoptions.m4
│ │ │ ├── ltsugar.m4
│ │ │ └── ltversion.m4
│ │ ├── make
│ │ │ └── Makefile
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── msvc
│ │ │ ├── gtest_main-md.vcproj
│ │ │ ├── gtest_main.vcproj
│ │ │ ├── gtest-md.sln
│ │ │ ├── gtest-md.vcproj
│ │ │ ├── gtest_prod_test-md.vcproj
│ │ │ ├── gtest_prod_test.vcproj
│ │ │ ├── gtest.sln
│ │ │ ├── gtest_unittest-md.vcproj
│ │ │ ├── gtest_unittest.vcproj
│ │ │ └── gtest.vcproj
│ │ ├── README
│ │ ├── samples
│ │ │ ├── prime_tables.h
│ │ │ ├── sample10_unittest.cc
│ │ │ ├── sample1.cc
│ │ │ ├── sample1.h
│ │ │ ├── sample1_unittest.cc
│ │ │ ├── sample2.cc
│ │ │ ├── sample2.h
│ │ │ ├── sample2_unittest.cc
│ │ │ ├── sample3-inl.h
│ │ │ ├── sample3_unittest.cc
│ │ │ ├── sample4.cc
│ │ │ ├── sample4.h
│ │ │ ├── sample4_unittest.cc
│ │ │ ├── sample5_unittest.cc
│ │ │ ├── sample6_unittest.cc
│ │ │ ├── sample7_unittest.cc
│ │ │ ├── sample8_unittest.cc
│ │ │ └── sample9_unittest.cc
│ │ ├── scripts
│ │ │ ├── fuse_gtest_files.py
│ │ │ ├── gen_gtest_pred_impl.py
│ │ │ ├── gtest-config.in
│ │ │ ├── pump.py
│ │ │ └── test
│ │ │ └── Makefile
│ │ ├── src
│ │ │ ├── gtest-all.cc
│ │ │ ├── gtest.cc
│ │ │ ├── gtest-death-test.cc
│ │ │ ├── gtest-filepath.cc
│ │ │ ├── gtest-internal-inl.h
│ │ │ ├── gtest_main.cc
│ │ │ ├── gtest-port.cc
│ │ │ ├── gtest-printers.cc
│ │ │ ├── gtest-test-part.cc
│ │ │ └── gtest-typed-test.cc
│ │ ├── test
│ │ │ ├── gtest_all_test.cc
│ │ │ ├── gtest_break_on_failure_unittest_.cc
│ │ │ ├── gtest_break_on_failure_unittest.py
│ │ │ ├── gtest_catch_exceptions_test_.cc
│ │ │ ├── gtest_catch_exceptions_test.py
│ │ │ ├── gtest_color_test_.cc
│ │ │ ├── gtest_color_test.py
│ │ │ ├── gtest-death-test_ex_test.cc
│ │ │ ├── gtest-death-test_test.cc
│ │ │ ├── gtest_environment_test.cc
│ │ │ ├── gtest_env_var_test_.cc
│ │ │ ├── gtest_env_var_test.py
│ │ │ ├── gtest-filepath_test.cc
│ │ │ ├── gtest_filter_unittest_.cc
│ │ │ ├── gtest_filter_unittest.py
│ │ │ ├── gtest_help_test_.cc
│ │ │ ├── gtest_help_test.py
│ │ │ ├── gtest-linked_ptr_test.cc
│ │ │ ├── gtest-listener_test.cc
│ │ │ ├── gtest_list_tests_unittest_.cc
│ │ │ ├── gtest_list_tests_unittest.py
│ │ │ ├── gtest_main_unittest.cc
│ │ │ ├── gtest-message_test.cc
│ │ │ ├── gtest_no_test_unittest.cc
│ │ │ ├── gtest-options_test.cc
│ │ │ ├── gtest_output_test_.cc
│ │ │ ├── gtest_output_test_golden_lin.txt
│ │ │ ├── gtest_output_test.py
│ │ │ ├── gtest-param-test2_test.cc
│ │ │ ├── gtest-param-test_test.cc
│ │ │ ├── gtest-param-test_test.h
│ │ │ ├── gtest-port_test.cc
│ │ │ ├── gtest_pred_impl_unittest.cc
│ │ │ ├── gtest_premature_exit_test.cc
│ │ │ ├── gtest-printers_test.cc
│ │ │ ├── gtest_prod_test.cc
│ │ │ ├── gtest_repeat_test.cc
│ │ │ ├── gtest_shuffle_test_.cc
│ │ │ ├── gtest_shuffle_test.py
│ │ │ ├── gtest_sole_header_test.cc
│ │ │ ├── gtest_stress_test.cc
│ │ │ ├── gtest-test-part_test.cc
│ │ │ ├── gtest_test_utils.py
│ │ │ ├── gtest_throw_on_failure_ex_test.cc
│ │ │ ├── gtest_throw_on_failure_test_.cc
│ │ │ ├── gtest_throw_on_failure_test.py
│ │ │ ├── gtest-tuple_test.cc
│ │ │ ├── gtest-typed-test2_test.cc
│ │ │ ├── gtest-typed-test_test.cc
│ │ │ ├── gtest-typed-test_test.h
│ │ │ ├── gtest_uninitialized_test_.cc
│ │ │ ├── gtest_uninitialized_test.py
│ │ │ ├── gtest-unittest-api_test.cc
│ │ │ ├── gtest_unittest.cc
│ │ │ ├── gtest_xml_outfile1_test_.cc
│ │ │ ├── gtest_xml_outfile2_test_.cc
│ │ │ ├── gtest_xml_outfiles_test.py
│ │ │ ├── gtest_xml_output_unittest_.cc
│ │ │ ├── gtest_xml_output_unittest.py
│ │ │ ├── gtest_xml_test_utils.py
│ │ │ ├── production.cc
│ │ │ └── production.h
│ │ └── xcode
│ │ ├── Config
│ │ │ ├── DebugProject.xcconfig
│ │ │ ├── FrameworkTarget.xcconfig
│ │ │ ├── General.xcconfig
│ │ │ ├── ReleaseProject.xcconfig
│ │ │ ├── StaticLibraryTarget.xcconfig
│ │ │ └── TestTarget.xcconfig
│ │ ├── gtest.xcodeproj
│ │ │ └── project.pbxproj
│ │ ├── Resources
│ │ │ └── Info.plist
│ │ ├── Samples
│ │ │ └── FrameworkSample
│ │ │ ├── Info.plist
│ │ │ ├── runtests.sh
│ │ │ ├── widget.cc
│ │ │ ├── WidgetFramework.xcodeproj
│ │ │ │ └── project.pbxproj
│ │ │ ├── widget.h
│ │ │ └── widget_test.cc
│ │ └── Scripts
│ │ ├── runtests.sh
│ │ └── versiongenerate.py
│ ├── include
│ │ └── gmock
│ │ ├── gmock-actions.h
│ │ ├── gmock-cardinalities.h
│ │ ├── gmock-generated-actions.h
│ │ ├── gmock-generated-actions.h.pump
│ │ ├── gmock-generated-function-mockers.h
│ │ ├── gmock-generated-function-mockers.h.pump
│ │ ├── gmock-generated-matchers.h
│ │ ├── gmock-generated-matchers.h.pump
│ │ ├── gmock-generated-nice-strict.h
│ │ ├── gmock-generated-nice-strict.h.pump
│ │ ├── gmock.h
│ │ ├── gmock-matchers.h
│ │ ├── gmock-more-actions.h
│ │ ├── gmock-more-matchers.h
│ │ ├── gmock-spec-builders.h
│ │ └── internal
│ │ ├── gmock-generated-internal-utils.h
│ │ ├── gmock-generated-internal-utils.h.pump
│ │ ├── gmock-internal-utils.h
│ │ └── gmock-port.h
│ ├── LICENSE
│ ├── make
│ │ └── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── msvc
│ │ ├── 2005
│ │ │ ├── gmock_config.vsprops
│ │ │ ├── gmock_main.vcproj
│ │ │ ├── gmock.sln
│ │ │ ├── gmock_test.vcproj
│ │ │ └── gmock.vcproj
│ │ └── 2010
│ │ ├── gmock_config.props
│ │ ├── gmock_main.vcxproj
│ │ ├── gmock.sln
│ │ ├── gmock_test.vcxproj
│ │ └── gmock.vcxproj
│ ├── README
│ ├── scripts
│ │ ├── fuse_gmock_files.py
│ │ ├── generator
│ │ │ ├── cpp
│ │ │ │ ├── ast.py
│ │ │ │ ├── gmock_class.py
│ │ │ │ ├── __init__.py
│ │ │ │ ├── keywords.py
│ │ │ │ ├── tokenize.py
│ │ │ │ └── utils.py
│ │ │ ├── gmock_gen.py
│ │ │ ├── LICENSE
│ │ │ ├── README
│ │ │ └── README.cppclean
│ │ └── gmock-config.in
│ ├── src
│ │ ├── gmock-all.cc
│ │ ├── gmock-cardinalities.cc
│ │ ├── gmock.cc
│ │ ├── gmock-internal-utils.cc
│ │ ├── gmock_main.cc
│ │ ├── gmock-matchers.cc
│ │ └── gmock-spec-builders.cc
│ └── test
│ ├── gmock-actions_test.cc
│ ├── gmock_all_test.cc
│ ├── gmock-cardinalities_test.cc
│ ├── gmock_ex_test.cc
│ ├── gmock-generated-actions_test.cc
│ ├── gmock-generated-function-mockers_test.cc
│ ├── gmock-generated-internal-utils_test.cc
│ ├── gmock-generated-matchers_test.cc
│ ├── gmock-internal-utils_test.cc
│ ├── gmock_leak_test_.cc
│ ├── gmock_leak_test.py
│ ├── gmock_link2_test.cc
│ ├── gmock_link_test.cc
│ ├── gmock_link_test.h
│ ├── gmock-matchers_test.cc
│ ├── gmock-more-actions_test.cc
│ ├── gmock-nice-strict_test.cc
│ ├── gmock_output_test_.cc
│ ├── gmock_output_test_golden.txt
│ ├── gmock_output_test.py
│ ├── gmock-port_test.cc
│ ├── gmock-spec-builders_test.cc
│ ├── gmock_stress_test.cc
│ ├── gmock_test.cc
│ └── gmock_test_utils.py
├── gmock.BUILD
├── install-sh
├── java
│ ├── core
│ │ ├── generate-sources-build.xml
│ │ ├── generate-test-sources-build.xml
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── protobuf
│ │ │ ├── AbstractMessage.java
│ │ │ ├── AbstractMessageLite.java
│ │ │ ├── AbstractParser.java
│ │ │ ├── AbstractProtobufList.java
│ │ │ ├── BlockingRpcChannel.java
│ │ │ ├── BlockingService.java
│ │ │ ├── BooleanArrayList.java
│ │ │ ├── ByteBufferWriter.java
│ │ │ ├── ByteOutput.java
│ │ │ ├── ByteString.java
│ │ │ ├── CodedInputStream.java
│ │ │ ├── CodedOutputStream.java
│ │ │ ├── Descriptors.java
│ │ │ ├── DiscardUnknownFieldsParser.java
│ │ │ ├── DoubleArrayList.java
│ │ │ ├── DynamicMessage.java
│ │ │ ├── ExperimentalApi.java
│ │ │ ├── Extension.java
│ │ │ ├── ExtensionLite.java
│ │ │ ├── ExtensionRegistryFactory.java
│ │ │ ├── ExtensionRegistry.java
│ │ │ ├── ExtensionRegistryLite.java
│ │ │ ├── FieldSet.java
│ │ │ ├── FloatArrayList.java
│ │ │ ├── GeneratedMessage.java
│ │ │ ├── GeneratedMessageLite.java
│ │ │ ├── GeneratedMessageV3.java
│ │ │ ├── IntArrayList.java
│ │ │ ├── Internal.java
│ │ │ ├── InvalidProtocolBufferException.java
│ │ │ ├── LazyField.java
│ │ │ ├── LazyFieldLite.java
│ │ │ ├── LazyStringArrayList.java
│ │ │ ├── LazyStringList.java
│ │ │ ├── LongArrayList.java
│ │ │ ├── MapEntry.java
│ │ │ ├── MapEntryLite.java
│ │ │ ├── MapField.java
│ │ │ ├── MapFieldLite.java
│ │ │ ├── Message.java
│ │ │ ├── MessageLite.java
│ │ │ ├── MessageLiteOrBuilder.java
│ │ │ ├── MessageLiteToString.java
│ │ │ ├── MessageOrBuilder.java
│ │ │ ├── MessageReflection.java
│ │ │ ├── MutabilityOracle.java
│ │ │ ├── NioByteString.java
│ │ │ ├── Parser.java
│ │ │ ├── PrimitiveNonBoxingCollection.java
│ │ │ ├── ProtobufArrayList.java
│ │ │ ├── ProtocolMessageEnum.java
│ │ │ ├── ProtocolStringList.java
│ │ │ ├── RepeatedFieldBuilder.java
│ │ │ ├── RepeatedFieldBuilderV3.java
│ │ │ ├── RopeByteString.java
│ │ │ ├── RpcCallback.java
│ │ │ ├── RpcChannel.java
│ │ │ ├── RpcController.java
│ │ │ ├── RpcUtil.java
│ │ │ ├── ServiceException.java
│ │ │ ├── Service.java
│ │ │ ├── SingleFieldBuilder.java
│ │ │ ├── SingleFieldBuilderV3.java
│ │ │ ├── SmallSortedMap.java
│ │ │ ├── TextFormatEscaper.java
│ │ │ ├── TextFormat.java
│ │ │ ├── TextFormatParseInfoTree.java
│ │ │ ├── TextFormatParseLocation.java
│ │ │ ├── UninitializedMessageException.java
│ │ │ ├── UnknownFieldSet.java
│ │ │ ├── UnknownFieldSetLite.java
│ │ │ ├── UnmodifiableLazyStringList.java
│ │ │ ├── UnsafeByteOperations.java
│ │ │ ├── UnsafeUtil.java
│ │ │ ├── Utf8.java
│ │ │ └── WireFormat.java
│ │ └── test
│ │ ├── java
│ │ │ └── com
│ │ │ └── protobuf
│ │ │ ├── AbstractMessageTest.java
│ │ │ ├── AnyTest.java
│ │ │ ├── BooleanArrayListTest.java
│ │ │ ├── BoundedByteStringTest.java
│ │ │ ├── ByteBufferWriterTest.java
│ │ │ ├── ByteStringTest.java
│ │ │ ├── CheckUtf8Test.java
│ │ │ ├── CodedInputStreamTest.java
│ │ │ ├── CodedOutputStreamTest.java
│ │ │ ├── DeprecatedFieldTest.java
│ │ │ ├── DescriptorsTest.java
│ │ │ ├── DiscardUnknownFieldsTest.java
│ │ │ ├── DoubleArrayListTest.java
│ │ │ ├── DynamicMessageTest.java
│ │ │ ├── EnumTest.java
│ │ │ ├── ExtensionRegistryFactoryTest.java
│ │ │ ├── FieldPresenceTest.java
│ │ │ ├── FloatArrayListTest.java
│ │ │ ├── ForceFieldBuildersPreRun.java
│ │ │ ├── GeneratedMessageTest.java
│ │ │ ├── IntArrayListTest.java
│ │ │ ├── IsValidUtf8Test.java
│ │ │ ├── IsValidUtf8TestUtil.java
│ │ │ ├── LazyFieldLiteTest.java
│ │ │ ├── LazyFieldTest.java
│ │ │ ├── LazyMessageLiteTest.java
│ │ │ ├── LazyStringArrayListTest.java
│ │ │ ├── LazyStringEndToEndTest.java
│ │ │ ├── LiteEqualsAndHashTest.java
│ │ │ ├── LiteralByteStringTest.java
│ │ │ ├── LiteTest.java
│ │ │ ├── LongArrayListTest.java
│ │ │ ├── MapForProto2LiteTest.java
│ │ │ ├── MapForProto2Test.java
│ │ │ ├── MapTest.java
│ │ │ ├── MessageTest.java
│ │ │ ├── NestedBuildersTest.java
│ │ │ ├── NioByteStringTest.java
│ │ │ ├── ParseExceptionsTest.java
│ │ │ ├── ParserTest.java
│ │ │ ├── ProtobufArrayListTest.java
│ │ │ ├── RepeatedFieldBuilderV3Test.java
│ │ │ ├── RopeByteStringSubstringTest.java
│ │ │ ├── RopeByteStringTest.java
│ │ │ ├── ServiceTest.java
│ │ │ ├── SingleFieldBuilderV3Test.java
│ │ │ ├── SmallSortedMapTest.java
│ │ │ ├── TestBadIdentifiers.java
│ │ │ ├── TestBadIdentifiersLite.java
│ │ │ ├── TestUtil.java
│ │ │ ├── TestUtilLite.java
│ │ │ ├── TextFormatParseInfoTreeTest.java
│ │ │ ├── TextFormatParseLocationTest.java
│ │ │ ├── TextFormatTest.java
│ │ │ ├── UnknownEnumValueTest.java
│ │ │ ├── UnknownFieldSetLiteTest.java
│ │ │ ├── UnknownFieldSetTest.java
│ │ │ ├── UnmodifiableLazyStringListTest.java
│ │ │ ├── WellKnownTypesTest.java
│ │ │ └── WireFormatTest.java
│ │ └── proto
│ │ └── com
│ │ └── protobuf
│ │ ├── any_test.proto
│ │ ├── field_presence_test.proto
│ │ ├── lazy_fields_lite.proto
│ │ ├── lite_equals_and_hash.proto
│ │ ├── map_for_proto2_lite_test.proto
│ │ ├── map_for_proto2_test.proto
│ │ ├── map_initialization_order_test.proto
│ │ ├── map_test.proto
│ │ ├── multiple_files_test.proto
│ │ ├── nested_builders_test.proto
│ │ ├── nested_extension_lite.proto
│ │ ├── nested_extension.proto
│ │ ├── non_nested_extension_lite.proto
│ │ ├── non_nested_extension.proto
│ │ ├── outer_class_name_test2.proto
│ │ ├── outer_class_name_test3.proto
│ │ ├── outer_class_name_test.proto
│ │ ├── test_bad_identifiers.proto
│ │ ├── test_check_utf8.proto
│ │ ├── test_check_utf8_size.proto
│ │ ├── test_custom_options.proto
│ │ └── test_extra_interfaces.proto
│ ├── lite
│ │ ├── generate-sources-build.xml
│ │ ├── generate-test-sources-build.xml
│ │ └── pom.xml
│ ├── pom.xml
│ ├── README.md
│ └── util
│ ├── pom.xml
│ └── src
│ ├── main
│ │ └── java
│ │ └── com
│ │ └── protobuf
│ │ └── util
│ │ ├── Durations.java
│ │ ├── FieldMaskTree.java
│ │ ├── FieldMaskUtil.java
│ │ ├── JsonFormat.java
│ │ ├── Timestamps.java
│ │ └── TimeUtil.java
│ └── test
│ ├── java
│ │ └── com
│ │ └── protobuf
│ │ └── util
│ │ ├── FieldMaskTreeTest.java
│ │ ├── FieldMaskUtilTest.java
│ │ ├── JsonFormatTest.java
│ │ └── TimeUtilTest.java
│ └── proto
│ └── com
│ └── protobuf
│ └── util
│ └── json_test.proto
├── LICENSE
├── ltmain.sh
├── m4
│ ├── ac_system_extensions.m4
│ ├── acx_check_suncc.m4
│ ├── acx_pthread.m4
│ ├── ax_cxx_compile_stdcxx.m4
│ ├── ax_prog_cc_for_build.m4
│ ├── ax_prog_cxx_for_build.m4
│ ├── libtool.m4
│ ├── lt~obsolete.m4
│ ├── ltoptions.m4
│ ├── ltsugar.m4
│ ├── ltversion.m4
│ └── stl_hash.m4
├── Makefile.am
├── Makefile.in
├── missing
├── objectivec
│ └── GPBProtocolBuffers.m
├── protobuf.bzl
├── protobuf-lite.pc.in
├── protobuf.pc.in
├── python
│ └── release
│ └── wheel
│ ├── build_wheel_manylinux.sh
│ ├── Dockerfile
│ ├── protobuf_optimized_pip.sh
│ └── README.md
├── README.md
├── six.BUILD
├── src
│ │ └── protobuf
│ │ ├── any.cc
│ │ ├── any.h
│ │ ├── any.pb.cc
│ │ ├── any.pb.h
│ │ ├── any.proto
│ │ ├── any_test.cc
│ │ ├── any_test.proto
│ │ ├── api.pb.cc
│ │ ├── api.pb.h
│ │ ├── api.proto
│ │ ├── arena.cc
│ │ ├── arena.h
│ │ ├── arena_impl.h
│ │ ├── arenastring.cc
│ │ ├── arenastring.h
│ │ ├── arenastring_unittest.cc
│ │ ├── arena_test_util.cc
│ │ ├── arena_test_util.h
│ │ ├── arena_unittest.cc
│ │ ├── compiler
│ │ │ ├── code_generator.cc
│ │ │ ├── code_generator.h
│ │ │ ├── command_line_interface.cc
│ │ │ ├── command_line_interface.h
│ │ │ ├── command_line_interface_unittest.cc
│ │ │ ├── cpp
│ │ │ │ ├── cpp_bootstrap_unittest.cc
│ │ │ │ ├── cpp_enum.cc
│ │ │ │ ├── cpp_enum_field.cc
│ │ │ │ ├── cpp_enum_field.h
│ │ │ │ ├── cpp_enum.h
│ │ │ │ ├── cpp_extension.cc
│ │ │ │ ├── cpp_extension.h
│ │ │ │ ├── cpp_field.cc
│ │ │ │ ├── cpp_field.h
│ │ │ │ ├── cpp_file.cc
│ │ │ │ ├── cpp_file.h
│ │ │ │ ├── cpp_generator.cc
│ │ │ │ ├── cpp_generator.h
│ │ │ │ ├── cpp_helpers.cc
│ │ │ │ ├── cpp_helpers.h
│ │ │ │ ├── cpp_map_field.cc
│ │ │ │ ├── cpp_map_field.h
│ │ │ │ ├── cpp_message.cc
│ │ │ │ ├── cpp_message_field.cc
│ │ │ │ ├── cpp_message_field.h
│ │ │ │ ├── cpp_message.h
│ │ │ │ ├── cpp_move_unittest.cc
│ │ │ │ ├── cpp_options.h
│ │ │ │ ├── cpp_plugin_unittest.cc
│ │ │ │ ├── cpp_primitive_field.cc
│ │ │ │ ├── cpp_primitive_field.h
│ │ │ │ ├── cpp_service.cc
│ │ │ │ ├── cpp_service.h
│ │ │ │ ├── cpp_string_field.cc
│ │ │ │ ├── cpp_string_field.h
│ │ │ │ ├── cpp_test_bad_identifiers.proto
│ │ │ │ ├── cpp_test_large_enum_value.proto
│ │ │ │ ├── cpp_unittest.cc
│ │ │ │ ├── cpp_unittest.h
│ │ │ │ └── metadata_test.cc
│ │ │ ├── csharp
│ │ │ │ ├── csharp_bootstrap_unittest.cc
│ │ │ │ ├── csharp_doc_comment.cc
│ │ │ │ ├── csharp_doc_comment.h
│ │ │ │ ├── csharp_enum.cc
│ │ │ │ ├── csharp_enum_field.cc
│ │ │ │ ├── csharp_enum_field.h
│ │ │ │ ├── csharp_enum.h
│ │ │ │ ├── csharp_field_base.cc
│ │ │ │ ├── csharp_field_base.h
│ │ │ │ ├── csharp_generator.cc
│ │ │ │ ├── csharp_generator.h
│ │ │ │ ├── csharp_generator_unittest.cc
│ │ │ │ ├── csharp_helpers.cc
│ │ │ │ ├── csharp_helpers.h
│ │ │ │ ├── csharp_map_field.cc
│ │ │ │ ├── csharp_map_field.h
│ │ │ │ ├── csharp_message.cc
│ │ │ │ ├── csharp_message_field.cc
│ │ │ │ ├── csharp_message_field.h
│ │ │ │ ├── csharp_message.h
│ │ │ │ ├── csharp_names.h
│ │ │ │ ├── csharp_options.h
│ │ │ │ ├── csharp_primitive_field.cc
│ │ │ │ ├── csharp_primitive_field.h
│ │ │ │ ├── csharp_reflection_class.cc
│ │ │ │ ├── csharp_reflection_class.h
│ │ │ │ ├── csharp_repeated_enum_field.cc
│ │ │ │ ├── csharp_repeated_enum_field.h
│ │ │ │ ├── csharp_repeated_message_field.cc
│ │ │ │ ├── csharp_repeated_message_field.h
│ │ │ │ ├── csharp_repeated_primitive_field.cc
│ │ │ │ ├── csharp_repeated_primitive_field.h
│ │ │ │ ├── csharp_source_generator_base.cc
│ │ │ │ ├── csharp_source_generator_base.h
│ │ │ │ ├── csharp_wrapper_field.cc
│ │ │ │ └── csharp_wrapper_field.h
│ │ │ ├── importer.cc
│ │ │ ├── importer.h
│ │ │ ├── importer_unittest.cc
│ │ │ ├── java
│ │ │ │ ├── java_context.cc
│ │ │ │ ├── java_context.h
│ │ │ │ ├── java_doc_comment.cc
│ │ │ │ ├── java_doc_comment.h
│ │ │ │ ├── java_doc_comment_unittest.cc
│ │ │ │ ├── java_enum.cc
│ │ │ │ ├── java_enum_field.cc
│ │ │ │ ├── java_enum_field.h
│ │ │ │ ├── java_enum_field_lite.cc
│ │ │ │ ├── java_enum_field_lite.h
│ │ │ │ ├── java_enum.h
│ │ │ │ ├── java_enum_lite.cc
│ │ │ │ ├── java_enum_lite.h
│ │ │ │ ├── java_extension.cc
│ │ │ │ ├── java_extension.h
│ │ │ │ ├── java_extension_lite.cc
│ │ │ │ ├── java_extension_lite.h
│ │ │ │ ├── java_field.cc
│ │ │ │ ├── java_field.h
│ │ │ │ ├── java_file.cc
│ │ │ │ ├── java_file.h
│ │ │ │ ├── java_generator.cc
│ │ │ │ ├── java_generator_factory.cc
│ │ │ │ ├── java_generator_factory.h
│ │ │ │ ├── java_generator.h
│ │ │ │ ├── java_helpers.cc
│ │ │ │ ├── java_helpers.h
│ │ │ │ ├── java_lazy_message_field.cc
│ │ │ │ ├── java_lazy_message_field.h
│ │ │ │ ├── java_lazy_message_field_lite.cc
│ │ │ │ ├── java_lazy_message_field_lite.h
│ │ │ │ ├── java_map_field.cc
│ │ │ │ ├── java_map_field.h
│ │ │ │ ├── java_map_field_lite.cc
│ │ │ │ ├── java_map_field_lite.h
│ │ │ │ ├── java_message_builder.cc
│ │ │ │ ├── java_message_builder.h
│ │ │ │ ├── java_message_builder_lite.cc
│ │ │ │ ├── java_message_builder_lite.h
│ │ │ │ ├── java_message.cc
│ │ │ │ ├── java_message_field.cc
│ │ │ │ ├── java_message_field.h
│ │ │ │ ├── java_message_field_lite.cc
│ │ │ │ ├── java_message_field_lite.h
│ │ │ │ ├── java_message.h
│ │ │ │ ├── java_message_lite.cc
│ │ │ │ ├── java_message_lite.h
│ │ │ │ ├── java_name_resolver.cc
│ │ │ │ ├── java_name_resolver.h
│ │ │ │ ├── java_names.h
│ │ │ │ ├── java_options.h
│ │ │ │ ├── java_plugin_unittest.cc
│ │ │ │ ├── java_primitive_field.cc
│ │ │ │ ├── java_primitive_field.h
│ │ │ │ ├── java_primitive_field_lite.cc
│ │ │ │ ├── java_primitive_field_lite.h
│ │ │ │ ├── java_service.cc
│ │ │ │ ├── java_service.h
│ │ │ │ ├── java_shared_code_generator.cc
│ │ │ │ ├── java_shared_code_generator.h
│ │ │ │ ├── java_string_field.cc
│ │ │ │ ├── java_string_field.h
│ │ │ │ ├── java_string_field_lite.cc
│ │ │ │ └── java_string_field_lite.h
│ │ │ ├── javanano
│ │ │ │ ├── javanano_enum.cc
│ │ │ │ ├── javanano_enum_field.cc
│ │ │ │ ├── javanano_enum_field.h
│ │ │ │ ├── javanano_enum.h
│ │ │ │ ├── javanano_extension.cc
│ │ │ │ ├── javanano_extension.h
│ │ │ │ ├── javanano_field.cc
│ │ │ │ ├── javanano_field.h
│ │ │ │ ├── javanano_file.cc
│ │ │ │ ├── javanano_file.h
│ │ │ │ ├── javanano_generator.cc
│ │ │ │ ├── javanano_generator.h
│ │ │ │ ├── javanano_helpers.cc
│ │ │ │ ├── javanano_helpers.h
│ │ │ │ ├── javanano_map_field.cc
│ │ │ │ ├── javanano_map_field.h
│ │ │ │ ├── javanano_message.cc
│ │ │ │ ├── javanano_message_field.cc
│ │ │ │ ├── javanano_message_field.h
│ │ │ │ ├── javanano_message.h
│ │ │ │ ├── javanano_params.h
│ │ │ │ ├── javanano_primitive_field.cc
│ │ │ │ └── javanano_primitive_field.h
│ │ │ ├── js
│ │ │ │ ├── embed.cc
│ │ │ │ ├── js_generator.cc
│ │ │ │ ├── js_generator.h
│ │ │ │ ├── well_known_types
│ │ │ │ │ ├── any.js
│ │ │ │ │ ├── struct.js
│ │ │ │ │ └── timestamp.js
│ │ │ │ ├── well_known_types_embed.cc
│ │ │ │ └── well_known_types_embed.h
│ │ │ ├── main.cc
│ │ │ ├── mock_code_generator.cc
│ │ │ ├── mock_code_generator.h
│ │ │ ├── objectivec
│ │ │ │ ├── objectivec_enum.cc
│ │ │ │ ├── objectivec_enum_field.cc
│ │ │ │ ├── objectivec_enum_field.h
│ │ │ │ ├── objectivec_enum.h
│ │ │ │ ├── objectivec_extension.cc
│ │ │ │ ├── objectivec_extension.h
│ │ │ │ ├── objectivec_field.cc
│ │ │ │ ├── objectivec_field.h
│ │ │ │ ├── objectivec_file.cc
│ │ │ │ ├── objectivec_file.h
│ │ │ │ ├── objectivec_generator.cc
│ │ │ │ ├── objectivec_generator.h
│ │ │ │ ├── objectivec_helpers.cc
│ │ │ │ ├── objectivec_helpers.h
│ │ │ │ ├── objectivec_helpers_unittest.cc
│ │ │ │ ├── objectivec_map_field.cc
│ │ │ │ ├── objectivec_map_field.h
│ │ │ │ ├── objectivec_message.cc
│ │ │ │ ├── objectivec_message_field.cc
│ │ │ │ ├── objectivec_message_field.h
│ │ │ │ ├── objectivec_message.h
│ │ │ │ ├── objectivec_oneof.cc
│ │ │ │ ├── objectivec_oneof.h
│ │ │ │ ├── objectivec_primitive_field.cc
│ │ │ │ └── objectivec_primitive_field.h
│ │ │ ├── package_info.h
│ │ │ ├── parser.cc
│ │ │ ├── parser.h
│ │ │ ├── parser_unittest.cc
│ │ │ ├── php
│ │ │ │ ├── php_generator.cc
│ │ │ │ └── php_generator.h
│ │ │ ├── plugin.cc
│ │ │ ├── plugin.h
│ │ │ ├── plugin.pb.cc
│ │ │ ├── plugin.pb.h
│ │ │ ├── plugin.proto
│ │ │ ├── python
│ │ │ │ ├── python_generator.cc
│ │ │ │ ├── python_generator.h
│ │ │ │ └── python_plugin_unittest.cc
│ │ │ ├── ruby
│ │ │ │ ├── ruby_generated_code_pb.rb
│ │ │ │ ├── ruby_generated_code.proto
│ │ │ │ ├── ruby_generator.cc
│ │ │ │ ├── ruby_generator.h
│ │ │ │ └── ruby_generator_unittest.cc
│ │ │ ├── subprocess.cc
│ │ │ ├── subprocess.h
│ │ │ ├── test_plugin.cc
│ │ │ ├── zip_output_unittest.sh
│ │ │ ├── zip_writer.cc
│ │ │ └── zip_writer.h
│ │ ├── descriptor.cc
│ │ ├── descriptor_database.cc
│ │ ├── descriptor_database.h
│ │ ├── descriptor_database_unittest.cc
│ │ ├── descriptor.h
│ │ ├── descriptor.pb.cc
│ │ ├── descriptor.pb.h
│ │ ├── descriptor.proto
│ │ ├── descriptor_unittest.cc
│ │ ├── drop_unknown_fields_test.cc
│ │ ├── duration.pb.cc
│ │ ├── duration.pb.h
│ │ ├── duration.proto
│ │ ├── dynamic_message.cc
│ │ ├── dynamic_message.h
│ │ ├── dynamic_message_unittest.cc
│ │ ├── empty.pb.cc
│ │ ├── empty.pb.h
│ │ ├── empty.proto
│ │ ├── extension_set.cc
│ │ ├── extension_set.h
│ │ ├── extension_set_heavy.cc
│ │ ├── extension_set_unittest.cc
│ │ ├── field_mask.pb.cc
│ │ ├── field_mask.pb.h
│ │ ├── field_mask.proto
│ │ ├── generated_enum_reflection.h
│ │ ├── generated_enum_util.h
│ │ ├── generated_message_reflection.cc
│ │ ├── generated_message_reflection.h
│ │ ├── generated_message_reflection_unittest.cc
│ │ ├── generated_message_table_driven.cc
│ │ ├── generated_message_table_driven.h
│ │ ├── generated_message_table_driven_lite.cc
│ │ ├── generated_message_table_driven_lite.h
│ │ ├── generated_message_util.cc
│ │ ├── generated_message_util.h
│ │ ├── has_bits.h
│ │ ├── io
│ │ │ ├── coded_stream.cc
│ │ │ ├── coded_stream.h
│ │ │ ├── coded_stream_inl.h
│ │ │ ├── coded_stream_unittest.cc
│ │ │ ├── gzip_stream.cc
│ │ │ ├── gzip_stream.h
│ │ │ ├── gzip_stream_unittest.sh
│ │ │ ├── package_info.h
│ │ │ ├── printer.cc
│ │ │ ├── printer.h
│ │ │ ├── printer_unittest.cc
│ │ │ ├── strtod.cc
│ │ │ ├── strtod.h
│ │ │ ├── tokenizer.cc
│ │ │ ├── tokenizer.h
│ │ │ ├── tokenizer_unittest.cc
│ │ │ ├── zero_copy_stream.cc
│ │ │ ├── zero_copy_stream.h
│ │ │ ├── zero_copy_stream_impl.cc
│ │ │ ├── zero_copy_stream_impl.h
│ │ │ ├── zero_copy_stream_impl_lite.cc
│ │ │ ├── zero_copy_stream_impl_lite.h
│ │ │ └── zero_copy_stream_unittest.cc
│ │ ├── lite_arena_unittest.cc
│ │ ├── lite_unittest.cc
│ │ ├── map_entry.h
│ │ ├── map_entry_lite.h
│ │ ├── map_field.cc
│ │ ├── map_field.h
│ │ ├── map_field_inl.h
│ │ ├── map_field_lite.h
│ │ ├── map_field_test.cc
│ │ ├── map.h
│ │ ├── map_lite_test_util.cc
│ │ ├── map_lite_test_util.h
│ │ ├── map_lite_unittest.proto
│ │ ├── map_proto2_unittest.proto
│ │ ├── map_test.cc
│ │ ├── map_test_util.cc
│ │ ├── map_test_util.h
│ │ ├── map_test_util_impl.h
│ │ ├── map_type_handler.h
│ │ ├── map_unittest.proto
│ │ ├── message.cc
│ │ ├── message.h
│ │ ├── message_lite.cc
│ │ ├── message_lite.h
│ │ ├── message_unittest.cc
│ │ ├── metadata.h
│ │ ├── metadata_lite.h
│ │ ├── no_field_presence_test.cc
│ │ ├── package_info.h
│ │ ├── preserve_unknown_enum_test.cc
│ │ ├── proto3_arena_lite_unittest.cc
│ │ ├── proto3_arena_unittest.cc
│ │ ├── proto3_lite_unittest.cc
│ │ ├── reflection.h
│ │ ├── reflection_internal.h
│ │ ├── reflection_ops.cc
│ │ ├── reflection_ops.h
│ │ ├── reflection_ops_unittest.cc
│ │ ├── repeated_field.cc
│ │ ├── repeated_field.h
│ │ ├── repeated_field_reflection_unittest.cc
│ │ ├── repeated_field_unittest.cc
│ │ ├── service.cc
│ │ ├── service.h
│ │ ├── source_context.pb.cc
│ │ ├── source_context.pb.h
│ │ ├── source_context.proto
│ │ ├── struct.pb.cc
│ │ ├── struct.pb.h
│ │ ├── struct.proto
│ │ ├── stubs
│ │ │ ├── atomicops.h
│ │ │ ├── atomicops_internals_arm64_gcc.h
│ │ │ ├── atomicops_internals_arm_gcc.h
│ │ │ ├── atomicops_internals_arm_qnx.h
│ │ │ ├── atomicops_internals_atomicword_compat.h
│ │ │ ├── atomicops_internals_generic_c11_atomic.h
│ │ │ ├── atomicops_internals_generic_gcc.h
│ │ │ ├── atomicops_internals_mips_gcc.h
│ │ │ ├── atomicops_internals_power.h
│ │ │ ├── atomicops_internals_ppc_gcc.h
│ │ │ ├── atomicops_internals_solaris.h
│ │ │ ├── atomicops_internals_tsan.h
│ │ │ ├── atomicops_internals_x86_gcc.cc
│ │ │ ├── atomicops_internals_x86_gcc.h
│ │ │ ├── atomicops_internals_x86_msvc.cc
│ │ │ ├── atomicops_internals_x86_msvc.h
│ │ │ ├── atomic_sequence_num.h
│ │ │ ├── bytestream.cc
│ │ │ ├── bytestream.h
│ │ │ ├── bytestream_unittest.cc
│ │ │ ├── callback.h
│ │ │ ├── casts.h
│ │ │ ├── common.cc
│ │ │ ├── common.h
│ │ │ ├── common_unittest.cc
│ │ │ ├── fastmem.h
│ │ │ ├── hash.h
│ │ │ ├── int128.cc
│ │ │ ├── int128.h
│ │ │ ├── int128_unittest.cc
│ │ │ ├── io_win32.cc
│ │ │ ├── io_win32.h
│ │ │ ├── io_win32_unittest.cc
│ │ │ ├── logging.h
│ │ │ ├── macros.h
│ │ │ ├── map_util.h
│ │ │ ├── mathlimits.cc
│ │ │ ├── mathlimits.h
│ │ │ ├── mathutil.h
│ │ │ ├── mutex.h
│ │ │ ├── once.cc
│ │ │ ├── once.h
│ │ │ ├── once_unittest.cc
│ │ │ ├── platform_macros.h
│ │ │ ├── port.h
│ │ │ ├── scoped_ptr.h
│ │ │ ├── shared_ptr.h
│ │ │ ├── singleton.h
│ │ │ ├── status.cc
│ │ │ ├── status.h
│ │ │ ├── status_macros.h
│ │ │ ├── statusor.cc
│ │ │ ├── statusor.h
│ │ │ ├── statusor_test.cc
│ │ │ ├── status_test.cc
│ │ │ ├── stl_util.h
│ │ │ ├── stringpiece.cc
│ │ │ ├── stringpiece.h
│ │ │ ├── stringpiece_unittest.cc
│ │ │ ├── stringprintf.cc
│ │ │ ├── stringprintf.h
│ │ │ ├── stringprintf_unittest.cc
│ │ │ ├── structurally_valid.cc
│ │ │ ├── structurally_valid_unittest.cc
│ │ │ ├── strutil.cc
│ │ │ ├── strutil.h
│ │ │ ├── strutil_unittest.cc
│ │ │ ├── substitute.cc
│ │ │ ├── substitute.h
│ │ │ ├── template_util.h
│ │ │ ├── template_util_unittest.cc
│ │ │ ├── time.cc
│ │ │ ├── time.h
│ │ │ ├── time_test.cc
│ │ │ ├── type_traits.h
│ │ │ └── type_traits_unittest.cc
│ │ ├── testdata
│ │ │ ├── bad_utf8_string
│ │ │ ├── golden_message
│ │ │ ├── golden_message_maps
│ │ │ ├── golden_message_oneof_implemented
│ │ │ ├── golden_message_proto3
│ │ │ ├── golden_packed_fields_message
│ │ │ ├── map_test_data.txt
│ │ │ ├── text_format_unittest_data_oneof_implemented.txt
│ │ │ ├── text_format_unittest_data_pointy_oneof.txt
│ │ │ ├── text_format_unittest_data_pointy.txt
│ │ │ ├── text_format_unittest_data.txt
│ │ │ ├── text_format_unittest_extensions_data_pointy.txt
│ │ │ └── text_format_unittest_extensions_data.txt
│ │ ├── testing
│ │ │ ├── file.cc
│ │ │ ├── file.h
│ │ │ ├── googletest.cc
│ │ │ ├── googletest.h
│ │ │ ├── zcgunzip.cc
│ │ │ └── zcgzip.cc
│ │ ├── test_util.cc
│ │ ├── test_util.h
│ │ ├── test_util_lite.cc
│ │ ├── test_util_lite.h
│ │ ├── text_format.cc
│ │ ├── text_format.h
│ │ ├── text_format_unittest.cc
│ │ ├── timestamp.pb.cc
│ │ ├── timestamp.pb.h
│ │ ├── timestamp.proto
│ │ ├── type.pb.cc
│ │ ├── type.pb.h
│ │ ├── type.proto
│ │ ├── unittest_arena.proto
│ │ ├── unittest_custom_options.proto
│ │ ├── unittest_drop_unknown_fields.proto
│ │ ├── unittest_embed_optimize_for.proto
│ │ ├── unittest_empty.proto
│ │ ├── unittest_enormous_descriptor.proto
│ │ ├── unittest_import_lite.proto
│ │ ├── unittest_import.proto
│ │ ├── unittest_import_public_lite.proto
│ │ ├── unittest_import_public.proto
│ │ ├── unittest_lazy_dependencies_custom_option.proto
│ │ ├── unittest_lazy_dependencies_enum.proto
│ │ ├── unittest_lazy_dependencies.proto
│ │ ├── unittest_lite_imports_nonlite.proto
│ │ ├── unittest_lite.proto
│ │ ├── unittest_mset.proto
│ │ ├── unittest_mset_wire_format.proto
│ │ ├── unittest_no_arena_import.proto
│ │ ├── unittest_no_arena_lite.proto
│ │ ├── unittest_no_arena.proto
│ │ ├── unittest_no_field_presence.proto
│ │ ├── unittest_no_generic_services.proto
│ │ ├── unittest_optimize_for.proto
│ │ ├── unittest_preserve_unknown_enum2.proto
│ │ ├── unittest_preserve_unknown_enum.proto
│ │ ├── unittest.proto
│ │ ├── unittest_proto3_arena_lite.proto
│ │ ├── unittest_proto3_arena.proto
│ │ ├── unittest_proto3_lite.proto
│ │ ├── unittest_well_known_types.proto
│ │ ├── unknown_field_set.cc
│ │ ├── unknown_field_set.h
│ │ ├── unknown_field_set_unittest.cc
│ │ ├── util
│ │ │ ├── delimited_message_util.cc
│ │ │ ├── delimited_message_util.h
│ │ │ ├── delimited_message_util_test.cc
│ │ │ ├── field_comparator.cc
│ │ │ ├── field_comparator.h
│ │ │ ├── field_comparator_test.cc
│ │ │ ├── field_mask_util.cc
│ │ │ ├── field_mask_util.h
│ │ │ ├── field_mask_util_test.cc
│ │ │ ├── internal
│ │ │ │ ├── constants.h
│ │ │ │ ├── datapiece.cc
│ │ │ │ ├── datapiece.h
│ │ │ │ ├── default_value_objectwriter.cc
│ │ │ │ ├── default_value_objectwriter.h
│ │ │ │ ├── default_value_objectwriter_test.cc
│ │ │ │ ├── error_listener.cc
│ │ │ │ ├── error_listener.h
│ │ │ │ ├── expecting_objectwriter.h
│ │ │ │ ├── field_mask_utility.cc
│ │ │ │ ├── field_mask_utility.h
│ │ │ │ ├── json_escaping.cc
│ │ │ │ ├── json_escaping.h
│ │ │ │ ├── json_objectwriter.cc
│ │ │ │ ├── json_objectwriter.h
│ │ │ │ ├── json_objectwriter_test.cc
│ │ │ │ ├── json_stream_parser.cc
│ │ │ │ ├── json_stream_parser.h
│ │ │ │ ├── json_stream_parser_test.cc
│ │ │ │ ├── location_tracker.h
│ │ │ │ ├── mock_error_listener.h
│ │ │ │ ├── object_location_tracker.h
│ │ │ │ ├── object_source.h
│ │ │ │ ├── object_writer.cc
│ │ │ │ ├── object_writer.h
│ │ │ │ ├── protostream_objectsource.cc
│ │ │ │ ├── protostream_objectsource.h
│ │ │ │ ├── protostream_objectsource_test.cc
│ │ │ │ ├── protostream_objectwriter.cc
│ │ │ │ ├── protostream_objectwriter.h
│ │ │ │ ├── protostream_objectwriter_test.cc
│ │ │ │ ├── proto_writer.cc
│ │ │ │ ├── proto_writer.h
│ │ │ │ ├── structured_objectwriter.h
│ │ │ │ ├── testdata
│ │ │ │ │ ├── anys.proto
│ │ │ │ │ ├── books.proto
│ │ │ │ │ ├── default_value.proto
│ │ │ │ │ ├── default_value_test.proto
│ │ │ │ │ ├── field_mask.proto
│ │ │ │ │ ├── maps.proto
│ │ │ │ │ ├── oneofs.proto
│ │ │ │ │ ├── proto3.proto
│ │ │ │ │ ├── struct.proto
│ │ │ │ │ ├── timestamp_duration.proto
│ │ │ │ │ └── wrappers.proto
│ │ │ │ ├── type_info.cc
│ │ │ │ ├── type_info.h
│ │ │ │ ├── type_info_test_helper.cc
│ │ │ │ ├── type_info_test_helper.h
│ │ │ │ ├── utility.cc
│ │ │ │ └── utility.h
│ │ │ ├── json_format_proto3.proto
│ │ │ ├── json_util.cc
│ │ │ ├── json_util.h
│ │ │ ├── json_util_test.cc
│ │ │ ├── message_differencer.cc
│ │ │ ├── message_differencer.h
│ │ │ ├── message_differencer_unittest.cc
│ │ │ ├── message_differencer_unittest.proto
│ │ │ ├── package_info.h
│ │ │ ├── time_util.cc
│ │ │ ├── time_util.h
│ │ │ ├── time_util_test.cc
│ │ │ ├── type_resolver.h
│ │ │ ├── type_resolver_util.cc
│ │ │ ├── type_resolver_util.h
│ │ │ └── type_resolver_util_test.cc
│ │ ├── well_known_types_unittest.cc
│ │ ├── wire_format.cc
│ │ ├── wire_format.h
│ │ ├── wire_format_lite.cc
│ │ ├── wire_format_lite.h
│ │ ├── wire_format_lite_inl.h
│ │ ├── wire_format_unittest.cc
│ │ ├── wrappers.pb.cc
│ │ ├── wrappers.pb.h
│ │ └── wrappers.proto
│ ├── libprotobuf-lite.map
│ ├── libprotobuf.map
│ ├── libprotoc.map
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── README.md
│ └── solaris
│ └── libstdc++.la
├── test-driver
├── update_file_lists.sh
├── util
│ └── python
│ └── BUILD
└── WORKSPACE
116 directories, 1157 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论