Proteus is a Scala open source library for working with Protobuf and gRPC.
It is designed to be code-first, meaning that it is able to generate Protobuf codecs and .proto files directly from your Scala code.
It also provides a declarative way to define gRPC services in Scala, a bit like tapir does for HTTP services. You can define messages, RPCs, and services in Scala, then generate clients and servers for them, using a variety of backends (direct style, Future, ZIO, fs2, Ox).
It is available for Scala 3.3.x LTS and later versions. The core module is available for both Scala JVM and Scala.js.
Proteus also ships proteus-diff, a standalone native CLI for detecting breaking changes between .proto schemas, usable with any Protobuf project, no JVM required.