clds is a general purpose C library implementing several lockless data structures.
Implemented lockless data structures:
- Singly linked list
- Hash table
This library is work in progress. The first release should happen once the first lockless structure is usable and working.
The goals are:
- Performant lockless data structures
- C11 compliant code.
clds uses c-util, which is a C library providing common functionality for basic tasks (string manipulation, list manipulation, etc.).
c-util is available here: https://github.com/Azure/c-util and it is used as a submodule.
clds uses ctest as a test runner.
clds uses umock-c as mocking framework.
clds uses cmake for configuring build files.
- Clone
cldsby:
git clone --recursive https://github.com/Azure/clds.git
-
Create a folder named
cmakeunderclds -
Switch to the
cmakefolder and run
cmake ..
- Build
cmake --build .
In order to build the unit tests use:
cmake .. -Drun_unittests:bool=ON
After any switch of branches (git checkout for example), one should also update the submodule references by:
git submodule update --init --recursive