Protoroutes is an sbt plugin which can generate the following from .proto file.
- Play Framework's
Routerwhich handles Protocol Buffers and JSON requests - Scala.js client which communicates with the
Router
++---------------++ || || protoroutes +-----------------+ || || =============> | Scala.js client | || || +-----------------+ || || ^ +-----------------+ || || | +----------------->| REST API client | || || | | +-----------------+ || || REST API (PB) \ / REST API (JSON) || service.proto || | || || v || || protoroutes +----------------+ || || =============> | Play Router | || || +----------------+ || || | Your own | || || | implementation | || || | of `service` | || || ScalaPB +----------------+ || || =============> | gRPC Interface | || || +----------------+ ++---------------++ ^ gRPC | +-----------------+ +------------------>| gRPC client | +-----------------+ The idea of protoroutes is based on btlines/grpcgateway.