Skip to content

theodelrieu/mgs

Repository files navigation

MGS

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.

How to build

Requirements:

  • Python3
  • Conan (latest version)
  • CMake (>= 3.3)

Then run:

$ mkdir build && cd build $ conan workspace install .. $ cmake -G Ninja .. && ninja

About

C++14 codec library

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors