This directory contains the shared dependency code for various modules.
The code within the cpp directory primarily consists of common foundational code for the Backend (BE) and Meta Service (MS) modules, including object storage access and a testing framework for common C++ code.
