forked from protocolbuffers/protobuf
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request protocolbuffers#1438 from xfxyjwf/docs
Add a docs directory and move the third-party add-ons page here.
- Loading branch information
Showing
1 changed file
with
147 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
# Third-Party Add-ons for Protocol Buffers | ||
|
||
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. | ||
|
||
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. | ||
|
||
## Programming Languages | ||
|
||
These are projects we know about implementing Protocol Buffers for other programming languages: | ||
* Action Script: http://code.google.com/p/protobuf-actionscript3/ | ||
* Action Script: https://code.google.com/p/protoc-gen-as3/ | ||
* Action Script: https://github.com/matrix3d/JProtoc | ||
* C: https://github.com/protobuf-c/protobuf-c | ||
* C: http://koti.kapsi.fi/jpa/nanopb/ | ||
* C: https://github.com/cloudwu/pbc/ | ||
* C: https://github.com/haberman/upb/wiki | ||
* C: https://github.com/squidfunk/protobluff | ||
* C++: https://github.com/google/protobuf (Google-official implementation) | ||
* C/C++: http://spbc.sf.net/ | ||
* C#: http://code.google.com/p/protobuf-csharp-port | ||
* C#: http://code.google.com/p/protosharp/ | ||
* C#: https://silentorbit.com/protobuf/ | ||
* C#/.NET/WCF/VB: http://code.google.com/p/protobuf-net/ | ||
* Clojure: http://github.com/ninjudd/clojure-protobuf | ||
* Common Lisp: http://www.prism.gatech.edu/~ndantam3/docs/s-protobuf/ | ||
* Common Lisp: http://github.com/brown/protobuf | ||
* D: https://github.com/msoucy/dproto | ||
* D: http://256.makerslocal.org/wiki/index.php/ProtocolBuffer | ||
* D: https://github.com/opticron/ProtocolBuffer | ||
* Dart: https://github.com/dart-lang/dart-protobuf (runtime) https://github.com/dart-lang/dart-protoc-plugin (code generator) | ||
* Delphi: http://sourceforge.net/projects/protobuf-delphi/ | ||
* Delphi: http://fundementals.sourceforge.net/dl.html | ||
* Elixir: https://github.com/jeremyong/exprotoc | ||
* Erlang: http://github.com/ngerakines/erlang_protobuffs/tree/master | ||
* Erlang: http://piqi.org/ | ||
* Erlang: https://code.google.com/p/protoc-gen-erl/ | ||
* Erlang: https://github.com/basho/erlang_protobuffs | ||
* Go: https://github.com/golang/protobuf (Google-official implementation) | ||
* Go: http://code.google.com/p/goprotobuf/ | ||
* Go: https://github.com/akunspy/gopbuf | ||
* Haskell: http://hackage.haskell.org/package/hprotoc | ||
* Haxe: https://github.com/Atry/protoc-gen-haxe | ||
* Java: https://github.com/google/protobuf (Google-official implementation) | ||
* Java/Android: https://github.com/square/wire | ||
* Java ME: http://code.google.com/p/protobuf-javame/ | ||
* Java ME: http://swingme.sourceforge.net/encode.shtml | ||
* Java ME: http://github.com/ponderingpanda/protobuf-j2me | ||
* Java ME: http://code.google.com/p/protobuf-j2me/ | ||
* Javascript: http://code.google.com/p/protobuf-js/ | ||
* Javascript: http://github.com/sirikata/protojs | ||
* Javascript: https://github.com/dcodeIO/ProtoBuf.js | ||
* Javascript: http://code.google.com/p/protobuf-for-node/ | ||
* Javascript: http://code.google.com/p/protostuff/ | ||
* Julia: https://github.com/tanmaykm/ProtoBuf.jl | ||
* Lua: http://code.google.com/p/protoc-gen-lua/ | ||
* Lua: http://github.com/indygreg/lua-protobuf | ||
* Lua: https://github.com/Neopallium/lua-pb | ||
* Matlab: http://code.google.com/p/protobuf-matlab/ | ||
* Mercury: http://code.google.com/p/protobuf-mercury/ | ||
* Objective C: http://code.google.com/p/protobuf-objc/ | ||
* Objective C: https://github.com/alexeyxo/protobuf-objc | ||
* OCaml: http://piqi.org/ | ||
* Perl: http://groups.google.com/group/protobuf-perl | ||
* Perl: http://search.cpan.org/perldoc?Google::ProtocolBuffers | ||
* Perl/XS: http://code.google.com/p/protobuf-perlxs/ | ||
* PHP: http://code.google.com/p/pb4php/ | ||
* PHP: https://github.com/allegro/php-protobuf/ | ||
* PHP: https://github.com/chobie/php-protocolbuffers | ||
* PHP: http://drslump.github.com/Protobuf-PHP | ||
* Prolog: http://www.swi-prolog.org/pldoc/package/protobufs.html | ||
* Python: https://github.com/google/protobuf (Google-official implementation) | ||
* Python: http://eigenein.github.com/protobuf/ | ||
* R: http://cran.r-project.org/package=RProtoBuf | ||
* Ruby: http://code.google.com/p/ruby-protobuf/ | ||
* Ruby: http://github.com/mozy/ruby-protocol-buffers | ||
* Ruby: https://github.com/bmizerany/beefcake/tree/master/lib/beefcake | ||
* Ruby: https://github.com/localshred/protobuf | ||
* Rust: https://github.com/stepancheg/rust-protobuf/ | ||
* Scala: http://github.com/jeffplaisance/scala-protobuf | ||
* Scala: http://code.google.com/p/protobuf-scala | ||
* Scala: https://github.com/SandroGrzicic/ScalaBuff | ||
* Scala: http://trueaccord.github.io/ScalaPB/ | ||
* Swift: https://github.com/alexeyxo/protobuf-swift | ||
* Vala: https://launchpad.net/protobuf-vala | ||
* Visual Basic: http://code.google.com/p/protobuf-net/ | ||
|
||
## RPC Implementations | ||
|
||
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. | ||
|
||
* https://github.com/grpc/grpc (C++, Node.js, Python, Ruby, Objective-C, PHP, C#, Google-official implementation) | ||
* http://zeroc.com/ice.html (Multiple languages) | ||
* http://code.google.com/p/protobuf-net/ (C#/.NET/WCF/VB) | ||
* https://launchpad.net/txprotobuf/ (Python) | ||
* https://github.com/modeswitch/protobuf-rpc (Python) | ||
* http://code.google.com/p/protobuf-socket-rpc/ (Java, Python) | ||
* http://code.google.com/p/proto-streamer/ (Java) | ||
* http://code.google.com/p/server1/ (C++) | ||
* http://deltavsoft.com/RcfUserGuide/Protobufs (C++) | ||
* http://code.google.com/p/protobuf-mina-rpc/ (Python client, Java server) | ||
* http://code.google.com/p/casocklib/ (C++) | ||
* http://code.google.com/p/cxf-protobuf/ (Java) | ||
* http://code.google.com/p/protobuf-remote/ (C++/C#) | ||
* http://code.google.com/p/protobuf-rpc-pro/ (Java) | ||
* https://code.google.com/p/protorpc/ (Go/C++) | ||
* https://code.google.com/p/eneter-protobuf-serializer/ (Java/.NET) | ||
* http://www.deltavsoft.com/RCFProto.html (C++/Java/Python/C#) | ||
* https://github.com/robbinfan/claire-protorpc (C++) | ||
* https://github.com/BaiduPS/sofa-pbrpc (C++) | ||
* https://github.com/ebencheung/arab (C++) | ||
* http://code.google.com/p/protobuf-csharp-rpc/ (C#) | ||
* https://github.com/thesamet/rpcz (C++/Python, based on ZeroMQ) | ||
* https://github.com/w359405949/libmaid (C++, Python) | ||
* https://github.com/madwyn/libpbrpc (C++) | ||
|
||
## Other Utilities | ||
|
||
There are miscellaneous other things you may find useful as a Protocol Buffers developer. | ||
|
||
* [NetBeans IDE plugin](http://code.google.com/p/protobuf-netbeans-plugin/) | ||
* [Wireshark/Ethereal packet sniffer plugin](http://code.google.com/p/protobuf-wireshark/) | ||
* [Alternate encodings (JSON, XML, HTML) for Java protobufs](http://code.google.com/p/protobuf-java-format/) | ||
* [Another JSON encoder/decoder for Java](https://github.com/sijuv/protobuf-codec) | ||
* [Editor for serialized protobufs](http://code.google.com/p/protobufeditor/) | ||
* [Intellij IDEA plugin](http://github.com/nnmatveev/idea-plugin-protobuf) | ||
* [TextMate syntax highlighting](http://github.com/michaeledgar/protobuf-tmbundle) | ||
* [Oracle PL SQL plugin](http://code.google.com/p/protocol-buffer-plsql/) | ||
* [Eclipse editor for protobuf (from Google)](http://code.google.com/p/protobuf-dt/) | ||
* [C++ Builder compatible protobuf](https://github.com/saadware/protobuf-cppbuilder) | ||
* Maven Protocol Compiler Plugin | ||
* https://github.com/sergei-ivanov/maven-protoc-plugin/ | ||
* http://igor-petruk.github.com/protobuf-maven-plugin/ | ||
* http://code.google.com/p/maven-protoc-plugin/ | ||
* https://github.com/os72/protoc-jar-maven-plugin | ||
* [Documentation generator plugin (Markdown/HTML/DocBook/...)](https://github.com/estan/protoc-gen-doc) | ||
* [DocBook generator for .proto files](http://code.google.com/p/protoc-gen-docbook/) | ||
* [Protobuf for nginx module](https://github.com/dbcode/protobuf-nginx/) | ||
* [RSpec matchers and Cucumber step defs for testing Protocol Buffers](https://github.com/connamara/protobuf_spec) | ||
* [Sbt plugin for Protocol Buffers](https://github.com/Atry/sbt-cppp) | ||
* [Gradle Protobuf Plugin](https://github.com/aantono/gradle-plugin-protobuf) | ||
* [Multi-platform executable JAR and Java API for protoc](https://github.com/os72/protoc-jar) | ||
* [Python scripts to convert between Protocol Buffers and JSON](https://github.com/NextTuesday/py-pb-converters) | ||
* [Visual Studio Language Service support for Protocol Buffers](http://visualstudiogallery.msdn.microsoft.com/4bc0f38c-b058-4e05-ae38-155e053c19c5) | ||
* [C++ library for serialization/de-serialization between Protocol Buffers and JSON.](https://github.com/yinqiwen/pbjson) | ||
* [ProtoBuf with Java EE7 Expression Language 3.0; pure Java ProtoBuf Parser and Builder.](https://github.com/protobufel/protobuf-el) | ||
* [Notepad++ Syntax Highlighting for .proto files](https://github.com/chai2010/notepadplus-protobuf) | ||
* [Linter for .proto files](https://github.com/ckaznocha/protoc-gen-lint) |