| OLD | NEW |
| 1 # Third-Party Add-ons for Protocol Buffers | 1 # Third-Party Add-ons for Protocol Buffers |
| 2 | 2 |
| 3 This page lists code related to Protocol Buffers which is developed and maintain
ed by third parties. You may find this code useful, but note that **these proje
cts are not affiliated with or endorsed by Google (unless explicitly marked)**;
try them at your own risk. Also note that many projects here are in the early s
tages of development and not production-ready. | 3 This page lists code related to Protocol Buffers which is developed and maintain
ed by third parties. You may find this code useful, but note that **these proje
cts are not affiliated with or endorsed by Google (unless explicitly marked)**;
try them at your own risk. Also note that many projects here are in the early s
tages of development and not production-ready. |
| 4 | 4 |
| 5 If you have a project that should be listed here, please [send us a pull request
](https://github.com/google/protobuf/pulls) to update this page. | 5 If you have a project that should be listed here, please [send us a pull request
](https://github.com/google/protobuf/pulls) to update this page. |
| 6 | 6 |
| 7 ## Programming Languages | 7 ## Programming Languages |
| 8 | 8 |
| 9 These are projects we know about implementing Protocol Buffers for other program
ming languages: | 9 These are projects we know about implementing Protocol Buffers for other program
ming languages: |
| 10 * Action Script: http://code.google.com/p/protobuf-actionscript3/ | 10 * Action Script: http://code.google.com/p/protobuf-actionscript3/ |
| 11 * Action Script: https://code.google.com/p/protoc-gen-as3/ | 11 * Action Script: https://code.google.com/p/protoc-gen-as3/ |
| 12 * Action Script: https://github.com/matrix3d/JProtoc | 12 * Action Script: https://github.com/matrix3d/JProtoc |
| 13 * Action Script: https://github.com/zhongfq/protobuf-as3/ | |
| 14 * C: https://github.com/protobuf-c/protobuf-c | 13 * C: https://github.com/protobuf-c/protobuf-c |
| 15 * C: http://koti.kapsi.fi/jpa/nanopb/ | 14 * C: http://koti.kapsi.fi/jpa/nanopb/ |
| 16 * C: https://github.com/cloudwu/pbc/ | 15 * C: https://github.com/cloudwu/pbc/ |
| 17 * C: https://github.com/haberman/upb/wiki | 16 * C: https://github.com/haberman/upb/wiki |
| 18 * C: https://github.com/squidfunk/protobluff | 17 * C: https://github.com/squidfunk/protobluff |
| 19 * C++: https://github.com/google/protobuf (Google-official implementation) | 18 * C++: https://github.com/google/protobuf (Google-official implementation) |
| 20 * C/C++: http://spbc.sf.net/ | 19 * C/C++: http://spbc.sf.net/ |
| 21 * C#: http://code.google.com/p/protobuf-csharp-port | 20 * C#: http://code.google.com/p/protobuf-csharp-port |
| 22 * C#: http://code.google.com/p/protosharp/ | 21 * C#: http://code.google.com/p/protosharp/ |
| 23 * C#: https://silentorbit.com/protobuf/ | 22 * C#: https://silentorbit.com/protobuf/ |
| 24 * C#/.NET/WCF/VB: http://code.google.com/p/protobuf-net/ | 23 * C#/.NET/WCF/VB: http://code.google.com/p/protobuf-net/ |
| 25 * Clojure: http://github.com/ninjudd/clojure-protobuf | 24 * Clojure: http://github.com/ninjudd/clojure-protobuf |
| 26 * Common Lisp: http://www.prism.gatech.edu/~ndantam3/docs/s-protobuf/ | 25 * Common Lisp: http://www.prism.gatech.edu/~ndantam3/docs/s-protobuf/ |
| 27 * Common Lisp: http://github.com/brown/protobuf | 26 * Common Lisp: http://github.com/brown/protobuf |
| 28 * D: https://github.com/msoucy/dproto | 27 * D: https://github.com/msoucy/dproto |
| 29 * D: http://256.makerslocal.org/wiki/index.php/ProtocolBuffer | 28 * D: http://256.makerslocal.org/wiki/index.php/ProtocolBuffer |
| 30 * D: https://github.com/opticron/ProtocolBuffer | 29 * D: https://github.com/opticron/ProtocolBuffer |
| 31 * Dart: https://github.com/dart-lang/dart-protobuf (runtime) https://github.com/
dart-lang/dart-protoc-plugin (code generator) | 30 * Dart: https://github.com/dart-lang/dart-protobuf (runtime) https://github.com/
dart-lang/dart-protoc-plugin (code generator) |
| 32 * Delphi: http://sourceforge.net/projects/protobuf-delphi/ | 31 * Delphi: http://sourceforge.net/projects/protobuf-delphi/ |
| 33 * Delphi: http://fundementals.sourceforge.net/dl.html | 32 * Delphi: http://fundementals.sourceforge.net/dl.html |
| 34 * Elixir: https://github.com/jeremyong/exprotoc | 33 * Elixir: https://github.com/jeremyong/exprotoc |
| 35 * Erlang: http://github.com/ngerakines/erlang_protobuffs/tree/master | 34 * Erlang: http://github.com/ngerakines/erlang_protobuffs/tree/master |
| 36 * Erlang: http://piqi.org/ | 35 * Erlang: http://piqi.org/ |
| 37 * Erlang: https://code.google.com/p/protoc-gen-erl/ | 36 * Erlang: https://code.google.com/p/protoc-gen-erl/ |
| 38 * Erlang: https://github.com/basho/erlang_protobuffs | 37 * Erlang: https://github.com/basho/erlang_protobuffs |
| 39 * Erlang: https://github.com/tomas-abrahamsson/gpb | |
| 40 * Go: https://github.com/golang/protobuf (Google-official implementation) | 38 * Go: https://github.com/golang/protobuf (Google-official implementation) |
| 41 * Go: http://code.google.com/p/goprotobuf/ | 39 * Go: http://code.google.com/p/goprotobuf/ |
| 42 * Go: https://github.com/akunspy/gopbuf | 40 * Go: https://github.com/akunspy/gopbuf |
| 43 * Haskell: http://hackage.haskell.org/package/hprotoc | 41 * Haskell: http://hackage.haskell.org/package/hprotoc |
| 44 * Haxe: https://github.com/Atry/protoc-gen-haxe | 42 * Haxe: https://github.com/Atry/protoc-gen-haxe |
| 45 * Java: https://github.com/google/protobuf (Google-official implementation) | 43 * Java: https://github.com/google/protobuf (Google-official implementation) |
| 46 * Java/Android: https://github.com/square/wire | 44 * Java/Android: https://github.com/square/wire |
| 47 * Java ME: http://code.google.com/p/protobuf-javame/ | 45 * Java ME: http://code.google.com/p/protobuf-javame/ |
| 48 * Java ME: http://swingme.sourceforge.net/encode.shtml | 46 * Java ME: http://swingme.sourceforge.net/encode.shtml |
| 47 * Java ME: http://github.com/ponderingpanda/protobuf-j2me |
| 49 * Java ME: http://code.google.com/p/protobuf-j2me/ | 48 * Java ME: http://code.google.com/p/protobuf-j2me/ |
| 50 * Javascript: http://code.google.com/p/protobuf-js/ | 49 * Javascript: http://code.google.com/p/protobuf-js/ |
| 51 * Javascript: http://github.com/sirikata/protojs | 50 * Javascript: http://github.com/sirikata/protojs |
| 52 * Javascript: https://github.com/dcodeIO/ProtoBuf.js | 51 * Javascript: https://github.com/dcodeIO/ProtoBuf.js |
| 53 * Javascript: http://code.google.com/p/protobuf-for-node/ | 52 * Javascript: http://code.google.com/p/protobuf-for-node/ |
| 54 * Javascript: http://code.google.com/p/protostuff/ | 53 * Javascript: http://code.google.com/p/protostuff/ |
| 55 * Julia: https://github.com/tanmaykm/ProtoBuf.jl | 54 * Julia: https://github.com/tanmaykm/ProtoBuf.jl |
| 56 * Lua: http://code.google.com/p/protoc-gen-lua/ | 55 * Lua: http://code.google.com/p/protoc-gen-lua/ |
| 57 * Lua: http://github.com/indygreg/lua-protobuf | 56 * Lua: http://github.com/indygreg/lua-protobuf |
| 58 * Lua: https://github.com/Neopallium/lua-pb | 57 * Lua: https://github.com/Neopallium/lua-pb |
| 59 * Matlab: http://code.google.com/p/protobuf-matlab/ | 58 * Matlab: http://code.google.com/p/protobuf-matlab/ |
| 60 * Mercury: http://code.google.com/p/protobuf-mercury/ | 59 * Mercury: http://code.google.com/p/protobuf-mercury/ |
| 61 * Objective C: http://code.google.com/p/protobuf-objc/ | 60 * Objective C: http://code.google.com/p/protobuf-objc/ |
| 62 * Objective C: https://github.com/alexeyxo/protobuf-objc | 61 * Objective C: https://github.com/alexeyxo/protobuf-objc |
| 63 * OCaml: http://piqi.org/ | 62 * OCaml: http://piqi.org/ |
| 64 * Perl: http://groups.google.com/group/protobuf-perl | 63 * Perl: http://groups.google.com/group/protobuf-perl |
| 65 * Perl: http://search.cpan.org/perldoc?Google::ProtocolBuffers | 64 * Perl: http://search.cpan.org/perldoc?Google::ProtocolBuffers |
| 66 * Perl: https://metacpan.org/pod/Google::ProtocolBuffers::Dynamic | |
| 67 * Perl/XS: http://code.google.com/p/protobuf-perlxs/ | 65 * Perl/XS: http://code.google.com/p/protobuf-perlxs/ |
| 68 * PHP: http://code.google.com/p/pb4php/ | 66 * PHP: http://code.google.com/p/pb4php/ |
| 69 * PHP: https://github.com/allegro/php-protobuf/ | 67 * PHP: https://github.com/allegro/php-protobuf/ |
| 70 * PHP: https://github.com/chobie/php-protocolbuffers | 68 * PHP: https://github.com/chobie/php-protocolbuffers |
| 71 * PHP: http://drslump.github.com/Protobuf-PHP | 69 * PHP: http://drslump.github.com/Protobuf-PHP |
| 72 * Prolog: http://www.swi-prolog.org/pldoc/package/protobufs.html | 70 * Prolog: http://www.swi-prolog.org/pldoc/package/protobufs.html |
| 73 * Python: https://github.com/google/protobuf (Google-official implementation) | 71 * Python: https://github.com/google/protobuf (Google-official implementation) |
| 74 * Python: http://eigenein.github.com/protobuf/ | 72 * Python: http://eigenein.github.com/protobuf/ |
| 75 * R: http://cran.r-project.org/package=RProtoBuf | 73 * R: http://cran.r-project.org/package=RProtoBuf |
| 76 * Ruby: http://code.google.com/p/ruby-protobuf/ | 74 * Ruby: http://code.google.com/p/ruby-protobuf/ |
| 77 * Ruby: http://github.com/mozy/ruby-protocol-buffers | 75 * Ruby: http://github.com/mozy/ruby-protocol-buffers |
| 78 * Ruby: https://github.com/bmizerany/beefcake/tree/master/lib/beefcake | 76 * Ruby: https://github.com/bmizerany/beefcake/tree/master/lib/beefcake |
| 79 * Ruby: https://github.com/localshred/protobuf | 77 * Ruby: https://github.com/localshred/protobuf |
| 80 * Rust: https://github.com/stepancheg/rust-protobuf/ | 78 * Rust: https://github.com/stepancheg/rust-protobuf/ |
| 81 * Scala: http://github.com/jeffplaisance/scala-protobuf | 79 * Scala: http://github.com/jeffplaisance/scala-protobuf |
| 82 * Scala: http://code.google.com/p/protobuf-scala | 80 * Scala: http://code.google.com/p/protobuf-scala |
| 83 * Scala: https://github.com/SandroGrzicic/ScalaBuff | 81 * Scala: https://github.com/SandroGrzicic/ScalaBuff |
| 84 * Scala: http://trueaccord.github.io/ScalaPB/ | 82 * Scala: http://trueaccord.github.io/ScalaPB/ |
| 85 * Swift: https://github.com/alexeyxo/protobuf-swift | 83 * Swift: https://github.com/alexeyxo/protobuf-swift |
| 86 * Swift: https://github.com/apple/swift-protobuf/ | |
| 87 * Vala: https://launchpad.net/protobuf-vala | 84 * Vala: https://launchpad.net/protobuf-vala |
| 88 * Visual Basic: http://code.google.com/p/protobuf-net/ | 85 * Visual Basic: http://code.google.com/p/protobuf-net/ |
| 89 | 86 |
| 90 ## RPC Implementations | 87 ## RPC Implementations |
| 91 | 88 |
| 92 GRPC (http://www.grpc.io/) is Google's RPC implementation for Protocol Buffers.
There are other third-party RPC implementations as well. Some of these actually
work with Protocol Buffers service definitions (defined using the `service` key
word in `.proto` files) while others just use Protocol Buffers message objects. | 89 GRPC (http://www.grpc.io/) is Google's RPC implementation for Protocol Buffers.
There are other third-party RPC implementations as well. Some of these actually
work with Protocol Buffers service definitions (defined using the `service` key
word in `.proto` files) while others just use Protocol Buffers message objects. |
| 93 | 90 |
| 94 * https://github.com/grpc/grpc (C++, Node.js, Python, Ruby, Objective-C, PHP, C#
, Google-official implementation) | 91 * https://github.com/grpc/grpc (C++, Node.js, Python, Ruby, Objective-C, PHP, C#
, Google-official implementation) |
| 95 * http://zeroc.com/ice.html (Multiple languages) | 92 * http://zeroc.com/ice.html (Multiple languages) |
| 96 * http://code.google.com/p/protobuf-net/ (C#/.NET/WCF/VB) | 93 * http://code.google.com/p/protobuf-net/ (C#/.NET/WCF/VB) |
| (...skipping 26 matching lines...) Expand all Loading... |
| 123 * [NetBeans IDE plugin](http://code.google.com/p/protobuf-netbeans-plugin/) | 120 * [NetBeans IDE plugin](http://code.google.com/p/protobuf-netbeans-plugin/) |
| 124 * [Wireshark/Ethereal packet sniffer plugin](http://code.google.com/p/protobuf-w
ireshark/) | 121 * [Wireshark/Ethereal packet sniffer plugin](http://code.google.com/p/protobuf-w
ireshark/) |
| 125 * [Alternate encodings (JSON, XML, HTML) for Java protobufs](http://code.google.
com/p/protobuf-java-format/) | 122 * [Alternate encodings (JSON, XML, HTML) for Java protobufs](http://code.google.
com/p/protobuf-java-format/) |
| 126 * [Another JSON encoder/decoder for Java](https://github.com/sijuv/protobuf-code
c) | 123 * [Another JSON encoder/decoder for Java](https://github.com/sijuv/protobuf-code
c) |
| 127 * [Editor for serialized protobufs](http://code.google.com/p/protobufeditor/) | 124 * [Editor for serialized protobufs](http://code.google.com/p/protobufeditor/) |
| 128 * [Intellij IDEA plugin](http://github.com/nnmatveev/idea-plugin-protobuf) | 125 * [Intellij IDEA plugin](http://github.com/nnmatveev/idea-plugin-protobuf) |
| 129 * [TextMate syntax highlighting](http://github.com/michaeledgar/protobuf-tmbundl
e) | 126 * [TextMate syntax highlighting](http://github.com/michaeledgar/protobuf-tmbundl
e) |
| 130 * [Oracle PL SQL plugin](http://code.google.com/p/protocol-buffer-plsql/) | 127 * [Oracle PL SQL plugin](http://code.google.com/p/protocol-buffer-plsql/) |
| 131 * [Eclipse editor for protobuf (from Google)](http://code.google.com/p/protobuf-
dt/) | 128 * [Eclipse editor for protobuf (from Google)](http://code.google.com/p/protobuf-
dt/) |
| 132 * [C++ Builder compatible protobuf](https://github.com/saadware/protobuf-cppbuil
der) | 129 * [C++ Builder compatible protobuf](https://github.com/saadware/protobuf-cppbuil
der) |
| 133 * Maven Protobuf Compiler Plugin | 130 * Maven Protocol Compiler Plugin |
| 134 * By xolstice.org ([Documentation](https://www.xolstice.org/protobuf-maven-p
lugin/)) ([Source](https://github.com/xolstice/protobuf-maven-plugin/)) [](https://repo1.maven.org/maven2/org/xolstice/maven/plugin
s/protobuf-maven-plugin/) | 131 * https://github.com/sergei-ivanov/maven-protoc-plugin/ |
| 135 * http://igor-petruk.github.com/protobuf-maven-plugin/ | 132 * http://igor-petruk.github.com/protobuf-maven-plugin/ |
| 136 * http://code.google.com/p/maven-protoc-plugin/ | 133 * http://code.google.com/p/maven-protoc-plugin/ |
| 137 * https://github.com/os72/protoc-jar-maven-plugin | 134 * https://github.com/os72/protoc-jar-maven-plugin |
| 138 * [Documentation generator plugin (Markdown/HTML/DocBook/...)](https://github.co
m/estan/protoc-gen-doc) | 135 * [Documentation generator plugin (Markdown/HTML/DocBook/...)](https://github.co
m/estan/protoc-gen-doc) |
| 139 * [DocBook generator for .proto files](http://code.google.com/p/protoc-gen-docbo
ok/) | 136 * [DocBook generator for .proto files](http://code.google.com/p/protoc-gen-docbo
ok/) |
| 140 * [Protobuf for nginx module](https://github.com/dbcode/protobuf-nginx/) | 137 * [Protobuf for nginx module](https://github.com/dbcode/protobuf-nginx/) |
| 141 * [RSpec matchers and Cucumber step defs for testing Protocol Buffers](https://g
ithub.com/connamara/protobuf_spec) | 138 * [RSpec matchers and Cucumber step defs for testing Protocol Buffers](https://g
ithub.com/connamara/protobuf_spec) |
| 142 * [Sbt plugin for Protocol Buffers](https://github.com/Atry/sbt-cppp) | 139 * [Sbt plugin for Protocol Buffers](https://github.com/Atry/sbt-cppp) |
| 143 * [Gradle Protobuf Plugin](https://github.com/aantono/gradle-plugin-protobuf) | 140 * [Gradle Protobuf Plugin](https://github.com/aantono/gradle-plugin-protobuf) |
| 144 * [Multi-platform executable JAR and Java API for protoc](https://github.com/os7
2/protoc-jar) | 141 * [Multi-platform executable JAR and Java API for protoc](https://github.com/os7
2/protoc-jar) |
| 145 * [Python scripts to convert between Protocol Buffers and JSON](https://github.c
om/NextTuesday/py-pb-converters) | 142 * [Python scripts to convert between Protocol Buffers and JSON](https://github.c
om/NextTuesday/py-pb-converters) |
| 146 * [Visual Studio Language Service support for Protocol Buffers](http://visualstu
diogallery.msdn.microsoft.com/4bc0f38c-b058-4e05-ae38-155e053c19c5) | 143 * [Visual Studio Language Service support for Protocol Buffers](http://visualstu
diogallery.msdn.microsoft.com/4bc0f38c-b058-4e05-ae38-155e053c19c5) |
| 147 * [C++ library for serialization/de-serialization between Protocol Buffers and J
SON.](https://github.com/yinqiwen/pbjson) | 144 * [C++ library for serialization/de-serialization between Protocol Buffers and J
SON.](https://github.com/yinqiwen/pbjson) |
| 148 * [ProtoBuf with Java EE7 Expression Language 3.0; pure Java ProtoBuf Parser and
Builder.](https://github.com/protobufel/protobuf-el) | 145 * [ProtoBuf with Java EE7 Expression Language 3.0; pure Java ProtoBuf Parser and
Builder.](https://github.com/protobufel/protobuf-el) |
| 149 * [Notepad++ Syntax Highlighting for .proto files](https://github.com/chai2010/n
otepadplus-protobuf) | 146 * [Notepad++ Syntax Highlighting for .proto files](https://github.com/chai2010/n
otepadplus-protobuf) |
| 150 * [Linter for .proto files](https://github.com/ckaznocha/protoc-gen-lint) | 147 * [Linter for .proto files](https://github.com/ckaznocha/protoc-gen-lint) |
| 151 * [Protocol Buffers Dynamic Schema - create protobuf schemas programmatically (J
ava)] (https://github.com/os72/protobuf-dynamic) | |
| OLD | NEW |