Remote Procedure Calls are method of fast communication without the bloat of HTTP. RPC is typically used in messaging apps or in multiplayer video games. There are various options for implementing RPC out there. One such library is qRPC.
Why qRPC?
When an RPC connection is needed fast, qRPC – which stands for “quick RPC” – is the answer for .NET developers. There are alternatives which are great too, such as gRPC provided by Google. The issue I have with gRPC is the time it takes to develop on both the client and server. With qRPC, the development time for the connection is shredded. The only thing that needs to be shared between the client and server is an interface describing the methods to be called. For this code-first reason, qRPC is only available between .NET applications. It’s intended application was synchronous communication between .Net microservices on Kubernetes.
How does it work?
Binary encoded JSON. The catch is that all data transferred between the client and server is serialised into a JSON string in a wrapper object (and optionally encrypted). Most data types are JSON serialisable, otherwise they can have custom serialisers added.
How secure is qRPC?
Symmetric encryption has recently been added. This means that a password can be shared between both ends of the connection and the messages in between are encrypted using AES. This is a very fast encryption algorithm which can encrypt gigabytes within seconds.