Protocol Buffer Compiler for Scala

Easy to Use

ScalaPB translates Protocol Buffers to Scala case classes. The generated API is easy to use!

Supports proto2 and proto3

ScalaPB is built as a protoc plugin and has perfect compatibility with the protobuf language specification.

Nested updates

Updating immutable nested structure is made easy by an optional lenses support. Learn more.

Interoperate with Java

Scala Protocol Buffers can be converted to Java and vice versa. Scala and Java protobufs can co-exist in the same project to make it easier to gradually migrate, or interact with legacy Java APIs.

Scala.js support

ScalaPB fully supports Scala.js so you can write Scala programs that use your domain-specific Protocol Buffers in the browser! Learn more.

gRPC

Build gRPC servers and clients with ScalaPB. ScalaPB ships with its own wrapper around the official gRPC Java implementation. There are gRPC libraries for ZIO, Cats Effect and Akka.