Giter Site home page Giter Site logo

mgs's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.