Architecture
In the previous section, we have already hinted a bit on the exact architecture. This section will expand upon it by giving a figure of the basic structure
graph TD; A[Go]-- Compiles to -->B[C shared library .so/.dll]; C[Language wrapper]-- Loads -->B Client -- Uses --> C;
As can be seen by this architecture, there is an intermediate layer between the client and the shared library. This wrapper eases the way of loading this library and then defining a more language specific API for it. In the eduvpn-common repo, we currently only support a Python wrapper. Clients themselves can define their own wrapper