mgs is a C++14 codec library.
Its main design goals are:
- Ease of use: Regular usage must be a no-brainer.
- Extensibility: New codecs should be easy to add in future versions.
- API genericity: Emulating concepts to define generic APIs.
- Package manager friendliness: Modular architecture, each codec is a single entity.
mgs defines a common interface for all supported codecs, that is both generic and customizable:
#include <mgs/base64.hpp> #include <array> #include <forward_list> #include <string> #include <vector> using namespace mgs; int main() { std::string const a = base64::encode("Hello, World!"); std::vector<unsigned char> const b = base64::decode(a); // Default return types can be overriden auto const c = base64::encode<std::forward_list<char>>(b); auto const d = base64::decode<std::array<char, 13>>(c); // Iterator ranges are supported auto const e = base64::encode(d.begin(), d.end()); auto const f = base64::decode(e.begin(), e.end()); }You can find the full documentation here.
Requirements:
- Python3
- Conan (latest version)
- CMake (>= 3.3)
Then run:
$ mkdir build && cd build $ conan workspace install .. $ cmake -G Ninja .. && ninja