clds/readme.md

66 строки
1.3 KiB
Markdown
Исходник Обычный вид История

2020-05-28 05:55:54 +03:00
# C Lockless Data Structures
`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.
## Dependencies
`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.
2020-05-28 05:55:54 +03:00
`clds` uses `ctest` as a test runner.
`clds` uses `umock-c` as mocking framework.
`clds` uses cmake for configuring build files.
## Setup
### Build
- Clone `clds` by:
```
2023-03-30 01:46:41 +03:00
git clone --recursive https://github.com/Azure/clds.git
2020-05-28 05:55:54 +03:00
```
- Create a folder named `cmake` under `clds`
- Switch to the `cmake` folder and run
```
cmake ..
```
- Build
```
cmake --build .
```
### Building the tests
In order to build the unit tests use:
```
cmake .. -Drun_unittests:bool=ON
```
## Switching branches
After any switch of branches (git checkout for example), one should also update the submodule references by:
```
git submodule update --init --recursive
```