Under the hood
for handling server side websocket communciation
ClientSessions for the client-side websocket communication,
along with some standard library 'inspect' magic for translating origin functions into proxy-useable functions with parameter validation, and lastly
for authentication & encryption.
Registered functions are made available as callables which return co-routines and thus 'awaitable' to the remote-endpoints, this is true for both async and non-async registered functions. Due to this, the functions must be awaited within a running event_loop. When called, the input parameters are verified via the origin functions signature.