/melon

c++11 common library compatible c++1y

Primary LanguageC++OtherNOASSERTION

abel - c++ base library

abel is an Oteam collection of c++ library code. it designed to use c++ smartly.

abel

status

platform compiler status
centos6 gcc-5.3 ok
centos7 gcc-5.3 ok
mac os llvm ok

content index

about abel

Since the inception, it's aimed to consolidate algorithms, data structures, system operations and make sure it's under control. Particularly, the goals are:

  • to have a library that has been well implemented and tested containing tools and algorithm.
  • aim high modularity with reduced dependencies between modules.
  • zero external dependencies.
  • build on all platforms with c++, such as linux, mac, android, windows, mobiles.
  • no warning and bugs on any platform and compiler.
  • published interfaces are required to have full documentation, using case description,performance benchmark and evaluation.
  • keep overhead down, compress overall size.

about cmake

build abel

abel use cmake as build system. sample to build abel

compiler requirement

  • clang version > 3.3
  • gcc version > 4.8
  • cmake version > 3.5(if you build benchmark) otherwise 2.8 is enough

build step

abel dependency managed by carbin flow, first need install carbin to install depends by carbin

    $ git github.com/gottingen/abel.git
    $ cd abel
    $ carbin install
    $ mkdir build
    $ cd build
    $ cmake ..
    $ make
    $ make test

modules

  • base

    the base module contains code that other modules depends on. no extern dependencies.

  • algorithm

  • atomic

  • chrono

  • container

  • debugging

  • digest

    the digest module contains md5, sha1, sha256 tools.

  • filesystem

    the filesystem module contain a C++17-like filesystem implementation for C++11/C++147/C++17

  • flags

  • format

  • strings

    strings library contains string utilities, such as trim, split. also include a compatible version of string_view.

examples

papers

topics