Member-only story
Face recognition using Dlib and gRPC written in Python and Go(lang)
For some time now i wanted to take a better look at how gRPC works and try to implement something with it. After a short session of brainstorming i decided to build a face recognition type application that can be run on different machines or at least in different processes and this is where gRPC comes in. By splitting the functionalities in separate services there comes a need to be able to call different functions or send some data from one process to another, one way to do this is by using a RPC (Remote Procedure Call) type framework that can make use of several low level inter-process communication methods such as: pipes, shared memory or sockets (network sockets or unix domain sockets).
One such framework is gRPC:
gRPC (gRPC Remote Procedure Calls) is an open source remote procedure call (RPC) system initially developed at Google in 2015. It uses HTTP/2 for transport, Protocol Buffers as the interface description language, and provides features such as authentication, bidirectional streaming and flow control, blocking or nonblocking bindings, and cancellation and timeouts.(https://en.wikipedia.org/wiki/GRPC)
One of the base technologies of gRPC is the protocol buffer. It is a very good serialization mechanism, like XML or JSON but built for speed and lower memory footprint…