To automatically generate Scala case classes for your messages add ScalaPB’s
sbt plugin to your project. Create a file named
containing the following line:
Add the following line to your
compile command in sbt will both generate Scala sources from
your protos and compile them. If you just want to generate Scala sources for
your protocol buffers without compiling them, run
Additionally, if you need customizations from
scalapb/scalapb.proto or anything from
google/protobuf/*.proto, add the
following to your
The plugin assumes your
proto files are under
however this is configurable using the
PB.protoSources in Compile setting.
protoc 3.0.0 that is shipped with
If you would like to run a different version of
See all available options in sbt-protoc documentation
Running on Windows
Before sbt-protoc 0.99.15, generating Scala code on Windows required Python 2.x to be installed on your system. If you are using sbt-protoc 0.99.15 or later, then things should just work.
If you are using an older version of sbt-protoc and unable to upgrade, then you must have Python 2.x installed on your system. If Python is not installed on your system, you can download it from here.
If Python.exe can be found in your PATH, then ScalaPB should just work. If not, you can set the location of the Python executable explicitly:
To enable Java conversions add the following to your build.sbt:
Generating GRPC stubs for services is enabled by default. To disable:
Additional options to the generator
Note that in ScalaPB 0.7,
singleLineToString has been renamed to
flatPackage: When true, ScalaPB will not append the protofile base name
to the package name.
singleLineToProtoString: By default, ScalaPB generates a
that renders the message as a multi-line format (using
Set to true If you would like ScalaPB to generate
toString() methods that use the single line