Skip to content
/ abel Public
forked from gottingen/melon

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

License

Notifications You must be signed in to change notification settings

Conun/abel

 
 

Repository files navigation

abel - c++ base library

abel is an open-source collection of c++ library code. it designed to use c++ smartly.

abel

status

Build Status Coverage Status

  • centos7 gcc-4.8+ ok
  • macos llvm ok

content index

about abel

For several years, I have planned to establish a repository to de-duplicate code from the projects either I have been involved in or I have paid close attention to (e.g.,open source) so that I would develop iteratively based upon the repository. I have tried the codes on many private projects and the applicability is verified. The repository , named after a mathematician as 'Abel', fortunately came out on Jan 1st 2020.

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

$ git clone https://github.com/gottingen/abel.git
$ cd abel
$ 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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.0%
  • Other 1.0%