Rework of build system and split library into distinct 'web server' and 'web app' elements
The changes here do four things:
-
Move from bespoke bash scripts and rpms for dependency building to purely Cmake. Now we can build on Mac and other Linux distros and architectures.
-
Make Proxygen an optional dependency - it is complex and slow to build, mostly we can use a simple/mock server and only use Proxygen for 'deployment'. This involved a significant code refactor - since there wasn't a neural 'web server' interface.
-
Split the application into a 'web server' which can be switched in and out (proxygen, microhttp, python binding etc) and a 'web app' which is server implementation agnostic and has our business logic.
-
Move common code needed for hestia also to its own repo 'oust' - introduce object store client abstractions and mocks for easier testing.
This is a big change and not everything that previously worked continues to - so we need a backlog of items to get back to feature and test parity. I figure since our current devel/master branches no longer build anyway due to reliance on centos8 and need to dig into super build issues we are as well to restart from the point in this MR, which has a working CI, builds on our dev machines and has most of the functionality we need.