abel is an Oteam collection of c++ library code. it designed to use c++ smartly.
platform | compiler | status |
---|---|---|
centos6 | gcc-5.3 | ok |
centos7 | gcc-5.3 | ok |
mac os | llvm | ok |
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.
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
-
the base module contains code that other modules depends on. no extern dependencies.
-
the digest module contains md5, sha1, sha256 tools.
-
the filesystem module contain a C++17-like filesystem implementation for C++11/C++147/C++17
-
strings library contains string utilities, such as trim, split. also include a compatible version of string_view.