1 # Third-Party Add-ons for Protocol Buffers 2 3 This page lists code related to Protocol Buffers which is developed and maintained by third parties. You may find this code useful, but note that **these projects 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 stages of development and not production-ready. 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. 6 7 ## Programming Languages 8 9 These are projects we know about implementing Protocol Buffers for other programming languages: 10 * Action Script: http://code.google.com/p/protobuf-actionscript3/ 11 * Action Script: https://code.google.com/p/protoc-gen-as3/ 12 * Action Script: https://github.com/matrix3d/JProtoc 13 * C: https://github.com/protobuf-c/protobuf-c 14 * C: http://koti.kapsi.fi/jpa/nanopb/ 15 * C: https://github.com/cloudwu/pbc/ 16 * C: https://github.com/haberman/upb/wiki 17 * C: https://github.com/squidfunk/protobluff 18 * C++: https://github.com/google/protobuf (Google-official implementation) 19 * C/C++: http://spbc.sf.net/ 20 * C#: http://code.google.com/p/protobuf-csharp-port 21 * C#: http://code.google.com/p/protosharp/ 22 * C#: https://silentorbit.com/protobuf/ 23 * C#/.NET/WCF/VB: http://code.google.com/p/protobuf-net/ 24 * Clojure: http://github.com/ninjudd/clojure-protobuf 25 * Common Lisp: http://www.prism.gatech.edu/~ndantam3/docs/s-protobuf/ 26 * Common Lisp: http://github.com/brown/protobuf 27 * D: https://github.com/msoucy/dproto 28 * D: http://256.makerslocal.org/wiki/index.php/ProtocolBuffer 29 * D: https://github.com/opticron/ProtocolBuffer 30 * Dart: https://github.com/dart-lang/dart-protobuf (runtime) https://github.com/dart-lang/dart-protoc-plugin (code generator) 31 * Delphi: http://sourceforge.net/projects/protobuf-delphi/ 32 * Delphi: http://fundementals.sourceforge.net/dl.html 33 * Elixir: https://github.com/jeremyong/exprotoc 34 * Erlang: http://github.com/ngerakines/erlang_protobuffs/tree/master 35 * Erlang: http://piqi.org/ 36 * Erlang: https://code.google.com/p/protoc-gen-erl/ 37 * Erlang: https://github.com/basho/erlang_protobuffs 38 * Go: https://github.com/golang/protobuf (Google-official implementation) 39 * Go: http://code.google.com/p/goprotobuf/ 40 * Go: https://github.com/akunspy/gopbuf 41 * Haskell: http://hackage.haskell.org/package/hprotoc 42 * Haxe: https://github.com/Atry/protoc-gen-haxe 43 * Java: https://github.com/google/protobuf (Google-official implementation) 44 * Java/Android: https://github.com/square/wire 45 * Java ME: http://code.google.com/p/protobuf-javame/ 46 * Java ME: http://swingme.sourceforge.net/encode.shtml 47 * Java ME: http://github.com/ponderingpanda/protobuf-j2me 48 * Java ME: http://code.google.com/p/protobuf-j2me/ 49 * Javascript: http://code.google.com/p/protobuf-js/ 50 * Javascript: http://github.com/sirikata/protojs 51 * Javascript: https://github.com/dcodeIO/ProtoBuf.js 52 * Javascript: http://code.google.com/p/protobuf-for-node/ 53 * Javascript: http://code.google.com/p/protostuff/ 54 * Julia: https://github.com/tanmaykm/ProtoBuf.jl 55 * Lua: http://code.google.com/p/protoc-gen-lua/ 56 * Lua: http://github.com/indygreg/lua-protobuf 57 * Lua: https://github.com/Neopallium/lua-pb 58 * Matlab: http://code.google.com/p/protobuf-matlab/ 59 * Mercury: http://code.google.com/p/protobuf-mercury/ 60 * Objective C: http://code.google.com/p/protobuf-objc/ 61 * Objective C: https://github.com/alexeyxo/protobuf-objc 62 * OCaml: http://piqi.org/ 63 * Perl: http://groups.google.com/group/protobuf-perl 64 * Perl: http://search.cpan.org/perldoc?Google::ProtocolBuffers 65 * Perl/XS: http://code.google.com/p/protobuf-perlxs/ 66 * PHP: http://code.google.com/p/pb4php/ 67 * PHP: https://github.com/allegro/php-protobuf/ 68 * PHP: https://github.com/chobie/php-protocolbuffers 69 * PHP: http://drslump.github.com/Protobuf-PHP 70 * Prolog: http://www.swi-prolog.org/pldoc/package/protobufs.html 71 * Python: https://github.com/google/protobuf (Google-official implementation) 72 * Python: http://eigenein.github.com/protobuf/ 73 * R: http://cran.r-project.org/package=RProtoBuf 74 * Ruby: http://code.google.com/p/ruby-protobuf/ 75 * Ruby: http://github.com/mozy/ruby-protocol-buffers 76 * Ruby: https://github.com/bmizerany/beefcake/tree/master/lib/beefcake 77 * Ruby: https://github.com/localshred/protobuf 78 * Rust: https://github.com/stepancheg/rust-protobuf/ 79 * Scala: http://github.com/jeffplaisance/scala-protobuf 80 * Scala: http://code.google.com/p/protobuf-scala 81 * Scala: https://github.com/SandroGrzicic/ScalaBuff 82 * Scala: http://trueaccord.github.io/ScalaPB/ 83 * Swift: https://github.com/alexeyxo/protobuf-swift 84 * Vala: https://launchpad.net/protobuf-vala 85 * Visual Basic: http://code.google.com/p/protobuf-net/ 86 87 ## RPC Implementations 88 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` keyword in `.proto` files) while others just use Protocol Buffers message objects. 90 91 * https://github.com/grpc/grpc (C++, Node.js, Python, Ruby, Objective-C, PHP, C#, Google-official implementation) 92 * http://zeroc.com/ice.html (Multiple languages) 93 * http://code.google.com/p/protobuf-net/ (C#/.NET/WCF/VB) 94 * https://launchpad.net/txprotobuf/ (Python) 95 * https://github.com/modeswitch/protobuf-rpc (Python) 96 * http://code.google.com/p/protobuf-socket-rpc/ (Java, Python) 97 * http://code.google.com/p/proto-streamer/ (Java) 98 * http://code.google.com/p/server1/ (C++) 99 * http://deltavsoft.com/RcfUserGuide/Protobufs (C++) 100 * http://code.google.com/p/protobuf-mina-rpc/ (Python client, Java server) 101 * http://code.google.com/p/casocklib/ (C++) 102 * http://code.google.com/p/cxf-protobuf/ (Java) 103 * http://code.google.com/p/protobuf-remote/ (C++/C#) 104 * http://code.google.com/p/protobuf-rpc-pro/ (Java) 105 * https://code.google.com/p/protorpc/ (Go/C++) 106 * https://code.google.com/p/eneter-protobuf-serializer/ (Java/.NET) 107 * http://www.deltavsoft.com/RCFProto.html (C++/Java/Python/C#) 108 * https://github.com/robbinfan/claire-protorpc (C++) 109 * https://github.com/BaiduPS/sofa-pbrpc (C++) 110 * https://github.com/ebencheung/arab (C++) 111 * http://code.google.com/p/protobuf-csharp-rpc/ (C#) 112 * https://github.com/thesamet/rpcz (C++/Python, based on ZeroMQ) 113 * https://github.com/w359405949/libmaid (C++, Python) 114 * https://github.com/madwyn/libpbrpc (C++) 115 116 ## Other Utilities 117 118 There are miscellaneous other things you may find useful as a Protocol Buffers developer. 119 120 * [NetBeans IDE plugin](http://code.google.com/p/protobuf-netbeans-plugin/) 121 * [Wireshark/Ethereal packet sniffer plugin](http://code.google.com/p/protobuf-wireshark/) 122 * [Alternate encodings (JSON, XML, HTML) for Java protobufs](http://code.google.com/p/protobuf-java-format/) 123 * [Another JSON encoder/decoder for Java](https://github.com/sijuv/protobuf-codec) 124 * [Editor for serialized protobufs](http://code.google.com/p/protobufeditor/) 125 * [Intellij IDEA plugin](http://github.com/nnmatveev/idea-plugin-protobuf) 126 * [TextMate syntax highlighting](http://github.com/michaeledgar/protobuf-tmbundle) 127 * [Oracle PL SQL plugin](http://code.google.com/p/protocol-buffer-plsql/) 128 * [Eclipse editor for protobuf (from Google)](http://code.google.com/p/protobuf-dt/) 129 * [C++ Builder compatible protobuf](https://github.com/saadware/protobuf-cppbuilder) 130 * Maven Protocol Compiler Plugin 131 * https://github.com/sergei-ivanov/maven-protoc-plugin/ 132 * http://igor-petruk.github.com/protobuf-maven-plugin/ 133 * http://code.google.com/p/maven-protoc-plugin/ 134 * https://github.com/os72/protoc-jar-maven-plugin 135 * [Documentation generator plugin (Markdown/HTML/DocBook/...)](https://github.com/estan/protoc-gen-doc) 136 * [DocBook generator for .proto files](http://code.google.com/p/protoc-gen-docbook/) 137 * [Protobuf for nginx module](https://github.com/dbcode/protobuf-nginx/) 138 * [RSpec matchers and Cucumber step defs for testing Protocol Buffers](https://github.com/connamara/protobuf_spec) 139 * [Sbt plugin for Protocol Buffers](https://github.com/Atry/sbt-cppp) 140 * [Gradle Protobuf Plugin](https://github.com/aantono/gradle-plugin-protobuf) 141 * [Multi-platform executable JAR and Java API for protoc](https://github.com/os72/protoc-jar) 142 * [Python scripts to convert between Protocol Buffers and JSON](https://github.com/NextTuesday/py-pb-converters) 143 * [Visual Studio Language Service support for Protocol Buffers](http://visualstudiogallery.msdn.microsoft.com/4bc0f38c-b058-4e05-ae38-155e053c19c5) 144 * [C++ library for serialization/de-serialization between Protocol Buffers and JSON.](https://github.com/yinqiwen/pbjson) 145 * [ProtoBuf with Java EE7 Expression Language 3.0; pure Java ProtoBuf Parser and Builder.](https://github.com/protobufel/protobuf-el) 146 * [Notepad++ Syntax Highlighting for .proto files](https://github.com/chai2010/notepadplus-protobuf) 147 * [Linter for .proto files](https://github.com/ckaznocha/protoc-gen-lint) 148