# 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/protocolbuffers/protobuf/pulls) to
update this page.

## Programming Languages

These are projects we know about implementing Protocol Buffers for other
programming languages:

*   Action Script: https://github.com/matrix3d/JProtoc
*   Action Script: https://github.com/zhongfq/protobuf-as3/
*   Ada: https://github.com/reznikmm/protobuf
*   C: https://github.com/protobuf-c/protobuf-c
*   C: https://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/eerimoq/pbtools
*   C++: https://github.com/protocolbuffers/protobuf (Google-official
    implementation)
*   C++: https://github.com/tonda-kriz/simple-protobuf
*   C++: https://EmbeddedProto.com
*   C++: https://github.com/yksten/struct2x
*   C/C++: http://spbc.sf.net/
*   C#: https://silentorbit.com/protobuf/
*   Clojure: http://github.com/ninjudd/clojure-protobuf
*   Clojure: https://github.com/clojusc/protobuf
*   Clojure: https://protojure.readthedocs.io
*   Clojure: https://github.com/s-expresso/clojobuf
*   ClojureScript: https://github.com/s-expresso/clojobuf
*   Common Lisp: http://github.com/brown/protobuf
*   Common Lisp: http://github.com/qitab/cl-protobuf
*   D: https://github.com/dcarp/protobuf-d
*   D: https://github.com/msoucy/dproto
*   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
*   Elixir: https://github.com/tony612/protobuf-elixir
*   Elixir: https://github.com/ahamez/protox
*   Elm: https://github.com/tiziano88/elm-protobuf
*   Erlang: https://github.com/tomas-abrahamsson/gpb
*   Erlang: http://piqi.org/
*   Erlang: https://github.com/basho/erlang_protobuffs (no longer maintained,
    use gpb instead)
*   Hacklang/HHVM: https://github.com/y3llowcake/proto-hack
*   GDScript: https://github.com/oniksan/godobuf (Godot v3 engine plugin)
*   Go: https://github.com/golang/protobuf (Google-official implementation)
*   Go: https://github.com/akunspy/gopbuf
*   Go: https://github.com/gogo/protobuf
*   GopherJS: https://github.com/johanbrandhorst/protobuf
*   Haskell: https://hackage.haskell.org/package/hprotoc
*   Haskell: https://github.com/google/proto-lens (Google-unofficial
    implementation)
*   Haskell: https://github.com/awakesecurity/proto3-suite (code generator)
    https://github.com/awakesecurity/proto3-wire (binary
    serializer/deserializer)
*   Haxe: https://github.com/Atry/protoc-gen-haxe
*   Java: https://github.com/protocolbuffers/protobuf (Google-official
    implementation)
*   Java/Android: https://github.com/square/wire
*   Java: https://github.com/HebiRobotics/QuickBuffers/
*   Java ME: http://swingme.sourceforge.net/encode.shtml
*   Javascript: http://github.com/sirikata/protojs
*   Javascript: https://github.com/dcodeIO/ProtoBuf.js
*   Javascript: https://github.com/seishun/node-protoc-plugin (Node.js port of
    plugin.h)
*   Javascript: https://github.com/seishun/node-protoc-gen-javascript (Node.js
    port of the Google-official implementation)
*   Javascript: https://github.com/ButterCam/sisyphus-js
*   Julia: https://github.com/JuliaIO/ProtoBuf.jl
*   Kotlin: https://github.com/marcoferrer/kroto-plus
*   Kotlin: https://github.com/Kotlin/kotlinx.serialization
*   Kotlin: https://github.com/ButterCam/sisyphus
*   Kotlin: https://github.com/open-toast/protokt
*   Kotlin Multiplatform: https://github.com/streem/pbandk
*   Lua: http://github.com/indygreg/lua-protobuf
*   Lua: https://github.com/Neopallium/lua-pb
*   Objective C: https://github.com/alexeyxo/protobuf-objc
*   OCaml: http://piqi.org/
*   Perl: http://groups.google.com/group/protobuf-perl
*   Perl: https://metacpan.org/pod/Google::ProtocolBuffers
*   Perl: https://metacpan.org/pod/Google::ProtocolBuffers::Dynamic
*   PHP: https://github.com/allegro/php-protobuf/
*   PHP: https://github.com/chobie/php-protocolbuffers
*   Protobuf: https://github.com/mycroftjr/protoc-gen-proto
*   Prolog: http://www.swi-prolog.org/pldoc/package/protobufs.html
*   Purescript: https://github.com/xc-jp/purescript-protobuf
*   Python: https://github.com/protocolbuffers/protobuf (Google-official
    implementation)
*   Python: https://github.com/eigenein/protobuf
*   Python: https://github.com/danielgtaylor/python-betterproto
*   R: http://cran.r-project.org/package=RProtoBuf
*   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/tokio-rs/prost
*   Rust: https://github.com/stepancheg/rust-protobuf/
*   Rust: https://github.com/tafia/quick-protobuf
*   Scala: http://github.com/jeffplaisance/scala-protobuf
*   Scala: https://github.com/SandroGrzicic/ScalaBuff
*   Scala: https://scalapb.github.io
*   Solidity: https://github.com/celer-network/pb3-gen-sol
*   Swift: https://github.com/alexeyxo/protobuf-swift
*   Swift: https://github.com/apple/swift-protobuf/
*   Typescript: https://github.com/improbable-eng/ts-protoc-gen
*   Typescript: https://github.com/thesayyn/protoc-gen-ts
*   Typescript: https://github.com/pbkit/pbkit
*   Vala: https://launchpad.net/protobuf-vala
*   Zig: https://github.com/Arwalk/zig-protobuf

## 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)
*   https://zeroc.com/products/ice (Multiple languages)
*   https://github.com/protobuf-net/protobuf-net (C#/.NET/WCF/VB)
*   http://www.deltavsoft.com/doc/_external_serialization.html#Protobufs (C++)
*   https://protojure.github.io (Clojure)
*   https://github.com/baidu/sofa-pbrpc (C++)
*   https://github.com/madhon/protobuf-csharp-rpc (C#)
*   https://github.com/madwyn/libpbrpc (C++)
*   https://github.com/SeriousMa/grpc-protobuf-validation (Java)
*   https://github.com/elixir-grpc/grpc (Elixir)
*   https://github.com/johanbrandhorst/protobuf (GopherJS)
*   https://github.com/awakesecurity/gRPC-haskell (Haskell)
*   https://github.com/Yeolar/raster (C++)
*   https://github.com/jnordberg/wsrpc (JavaScript Node.js/Browser)
*   https://github.com/pbkit/npm-packages/blob/main/frpc-test/src/index.spec.ts
    (TypeScript Node.js/Browser)
*   https://github.com/ppissias/xsrpcj (Java)
*   https://github.com/twitchtv/twirp (Multiple languages)
*   https://github.com/icerpc/icerpc-csharp (C#)
*   https://philips-software.github.io/amp-embedded-infra-lib (C++, C#, Java)

Inactive:

*   https://code.google.com/p/protobuf-actionscript3/ (Action Script)
*   https://code.google.com/p/protoc-gen-as3/ (Action Script)
*   https://code.google.com/p/protobuf-csharp-port (C#)
*   https://code.google.com/p/protobuf-net/ (C#/.NET/WCF/VB)
*   https://code.google.com/p/protobuf-javame/ (Java ME)
*   https://code.google.com/p/protobuf-rpc-pro/ (Java)
*   https://launchpad.net/txprotobuf/ (Python)
*   https://github.com/modeswitch/protobuf-rpc (Python)
*   https://github.com/sdeo/protobuf-socket-rpc (Java, Python)
*   https://code.google.com/p/proto-streamer/ (Java)
*   https://code.google.com/p/server1/ (C++)
*   https://code.google.com/p/protobuf-mina-rpc/ (Python client, Java server)
*   https://code.google.com/p/casocklib/ (C++)
*   https://code.google.com/p/cxf-protobuf/ (Java)
*   https://code.google.com/p/protobuf-remote/ (C++/C#)
*   https://code.google.com/p/eneter-protobuf-serializer/ (Java/.NET)
*   https://github.com/robbinfan/claire/tree/master/protorpc (C++)
*   https://github.com/ebencheung/arab (C++)
*   https://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://code.google.com/p/protobuf-js/ (Javascript)
*   https://code.google.com/p/protobuf-for-node/ (Javascript)
*   https://code.google.com/p/protostuff/ (Javascript)
*   https://code.google.com/p/protoc-gen-lua/ (Lua)
*   https://code.google.com/p/protobuf-matlab/ (Matlab)
*   https://code.google.com/p/protobuf-mercury/ (Mercury)
*   https://code.google.com/p/protobuf-objc/ (ObjC)
*   https://code.google.com/p/protobuf-perlxs/ (Perl/XS)
*   https://code.google.com/p/pb4php/ (PHP)
*   https://code.google.com/p/ruby-protobuf/ (Ruby)
*   https://code.google.com/p/protobuf-scala (Scala)
*   https://code.google.com/p/protobuf-net/ (Visual Basic)
*   https://code.google.com/p/protoc-gen-docbook/ (DocBook generator)

## Build

*   [Bazel Build](https://bazel.build)
    *   [rules_closure](https://github.com/bazelbuild/rules_closure)
        `js-closure`
    *   [rules_go](https://github.com/bazelbuild/rules_go) `go`
    *   [rules_protobuf](https://github.com/pubref/rules_protobuf) `java` `c++`
        `c#` `go` `js-closure` `js-node` `python` `ruby`
*   Maven Protobuf Compiler Plugin
    *   By xolstice.org
        ([Documentation](https://www.xolstice.org/protobuf-maven-plugin/))
        ([Source](https://github.com/xolstice/protobuf-maven-plugin/))
        [![Maven Central](https://img.shields.io/maven-central/v/org.xolstice.maven.plugins/protobuf-maven-plugin.svg)](https://repo1.maven.org/maven2/org/xolstice/maven/plugins/protobuf-maven-plugin/)
    *   https://code.google.com/p/maven-protoc-plugin/
    *   https://github.com/os72/protoc-jar-maven-plugin
    *   https://ascopes.github.io/protobuf-maven-plugin
*   [Protobuf Plugin for Gradle](https://github.com/google/protobuf-gradle-plugin)
*   [Sbt plugin for Protocol Buffers](https://github.com/Atry/sbt-cppp)

## IDE

*   [Visual Studio Code Support for Protocol Buffers](https://marketplace.visualstudio.com/items?itemName=zxh404.vscode-proto3)
*   [Visual Studio Language Service support for Protocol Buffers](http://visualstudiogallery.msdn.microsoft.com/4bc0f38c-b058-4e05-ae38-155e053c19c5)
*   [IntelliJ IDEA plugin](http://github.com/jvolkman/intellij-protobuf-editor)
*   [IntelliJ Protobuf Plugin](https://github.com/devkanro/intellij-protobuf-plugin)
*   [TextMate syntax highlighting](http://github.com/michaeledgar/protobuf-tmbundle)
*   [Notepad++ Syntax Highlighting for .proto files](https://github.com/chai2010/notepadplus-protobuf)
*   [Eclipse editor for protobuf (from Google)](https://code.google.com/p/protobuf-dt/)
*   [NetBeans IDE plugin](https://code.google.com/p/protobuf-netbeans-plugin/)
*   [Editor for serialized protobufs](https://code.google.com/p/protobufeditor/)

## Documentation

*   [Documentation generator plugin (Markdown/HTML/DocBook/...)](https://github.com/pseudomuto/protoc-gen-doc)

## Other Utilities

There are miscellaneous other things you may find useful as a Protocol Buffers
developer.

*   [Wireshark/Ethereal packet sniffer plugin](https://code.google.com/p/protobuf-wireshark/)
*   [Alternate encodings (JSON, XML, HTML) for Java protobufs](https://code.google.com/p/protobuf-java-format/)
*   [Another JSON encoder/decoder for Java](https://github.com/sijuv/protobuf-codec)
*   [Oracle PL SQL plugin](https://code.google.com/p/protocol-buffer-plsql/)
*   [C++ Builder compatible protobuf](https://github.com/saadware/protobuf-cppbuilder)
*   [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)
*   [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)
*   [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)
*   [Linter for .proto files](https://github.com/ckaznocha/protoc-gen-lint)
*   [Protocol Buffers Dynamic Schema - create protobuf schemas programmatically
    (Java)](https://github.com/os72/protobuf-dynamic)
*   [Make protoc plugins in NodeJS](https://github.com/konsumer/node-protoc-plugin)
*   [ProfaneDB - A Protocol Buffers database](https://profanedb.gitlab.io)
*   [Protocol Buffer property-based testing utility and example message
    generator (Python /
    Hypothesis)](https://github.com/CurataEng/hypothesis-protobuf)
*   [Protolock - CLI utility to prevent backward-incompatible changes to .proto
    files](https://github.com/nilslice/protolock)
*   [Optional GRPC - GRPC for testable microservices (Python)](https://github.com/mattpaletta/optional-grpc.git)
*   [Protobuf Parser - Yet another Go package which parses a Protocol Buffer
    file (proto2+proto3)](https://github.com/yoheimuta/go-protoparser)
*   [Protolint - A tool to enforce Protocol Buffer style and conventions.](https://github.com/yoheimuta/protolint)
    *   [vscode-protolint: A protobuf linter for visual studio code](https://github.com/plexsystems/vscode-protolint)
    *   [intellij-protolint: A protobuf linter for JetBrains IDEs](https://github.com/yoheimuta/intellij-protolint)
    *   [vim-protolint: A protobuf linter for Vim](https://github.com/yoheimuta/vim-protolint)
*   [super-linter: Protocol Buffer lint as GitHub Action](https://github.com/github/super-linter)
*   [protoc-gen-fieldmask - A plugin to generate static type fieldmask paths](https://github.com/idodod/protoc-gen-fieldmask)
*   [protoc-gen-bq-schema - A protoc plugin to generate BigQuery schema files](https://github.com/GoogleCloudPlatform/protoc-gen-bq-schema)
*   [protobuf-decoder-explainer - Web page which decodes and explains pasted
    binary Protocol
    Buffers](https://github.com/jamesdbrock/protobuf-decoder-explainer)
*   [rubberbuf - dynamically transpile protobuf into AST](https://github.com/s-expresso/rubberbuf)
    `clojure` `clojurescript`
*   [clojobuf-serdes - low level serialize/deserialize library for protobuf
    binary format](https://github.com/s-expresso/clojobuf-codec) `clojure`
    `clojurescript`
*   [gRPC Federation - generates a gRPC server by writing a custom option in
    Protocol Buffers](https://github.com/mercari/grpc-federation)
*   [Proto Boiler - A plugin to generate boilerplate code from .proto files
    using templates](https://github.com/in4lio/protoboiler)
