ScalaPB: Scala Protocol Buffer Compiler

ScalaPB is a protocol buffer compiler (protoc) plugin for Scala. It will generate Scala case classes, parsers and serializers for your protocol buffers.

ScalaPB is hosted on Github.

Main features#

  • Built on top of Google's protocol buffer compiler to ensure perfect compatibility with the language specification.

  • Supports both proto2 and proto3.

  • Nested updates are easy by using lenses:

val newOrder = order.update(_.creditCard.expirationYear := 2015)
  • Generated case classes can co-exist alongside the Java-generated code (the class names will not clash). This allows gradual transition from Java to Scala.

  • Can optionally generate conversion methods between the Java generated version of Protocol Buffers to the Scala generated version. This makes it possible to migrate your project gradually.

  • New: Supports for Oneof's that were introduced in Protocol Buffers 2.6.0.

  • Newer: Supports Scala.js (in 0.5.x).

  • Newer: Supports gRPC (in 0.5.x).

  • Newest: Supports SparkSQL (in 0.5.23).

  • Newest: Supports converting to and from JSON (in 0.5.x).

  • Newest: Supports User-defined options (in 0.5.29).