gRPC is a high-performance Remote Procedure Call (RPC) framework that uses HTTP/2 and service- and message-contracts (Protobuf) to create high-performance services. Not every platform can use it (e.g. as it does not fully support HTTP/2) and as REST APIs and JSON have an important place in modern apps, we also provide a RESTful JSON API with our BWS.
The RESTful API is generated using gRPC JSON transcoding. Therefore, it is directly integrated into our gRPC services. It deserializes JSON into Protobuf messages and invokes the gRPC service directly. The only overhead we have, is the bigger message size due to the base64 encoding of the sent images/videos.
As the RESTful JSON API is generated from the Protobuf, it is more or less identical to the gRPC API with the messages transformed to JSON objects.