# abel
**Repository Path**: gottingen/abel
## Basic Information
- **Project Name**: abel
- **Description**: No description available
- **Primary Language**: C++
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-12-25
- **Last Updated**: 2021-12-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# abel - c++ base library
abel is an Oteam collection of c++ library code. it designed to use c++ smartly.

## status
platform|compiler | status
:--- | :---| :---
centos6 | gcc-5.3 | ok
centos7 | gcc-5.3 | ok
mac os | llvm | ok
## content index
* [about abel](#about)
* [about cmake](#cmake)
* [build abel](#build)
* [modules](#modules)
* [examples](#examples)
* [papers](#papers)
* [topics](#topics)
## 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](https://github/gottingen/carbin)
```shell
$ git github.com/gottingen/abel.git
$ cd abel
$ carbin install
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make test
```
## modules
* [base](/docs/en/base.md)
the base module contains code that other modules depends on. no extern dependencies.
* [algorithm](/docs/en/algorithm.md)
* [atomic](/docs/en/atomic.md)
* [chrono](/docs/en/chrono.md)
* [container](/docs/en/container.md)
* [debugging](/docs/en/debugging.md)
* [digest](/docs/en/digest.md)
the digest module contains md5, sha1, sha256 tools.
* [filesystem](/docs/en/filesystem.md)
the filesystem module contain a C++17-like filesystem implementation for C++11/C++147/C++17
* [flags](/docs/en/flags.md)
* [format](/docs/en/format.md)
* [strings](/docs/en/strings.md)
strings library contains string utilities, such as trim, split. also include a
compatible version of string_view.
## examples
## papers
* [Working Draft N4687](/docs/documnet/n4687.pdf)
## topics
* [memory](/docs/en/topic/memory.md)
* [concurrent](/docs/en/topic/concurrent.md)