Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/smercer10/blockbuster
WIP collection of lock-free data structures.
https://github.com/smercer10/blockbuster
cpp data-structures lock-free non-blocking
Last synced: 7 days ago
JSON representation
WIP collection of lock-free data structures.
- Host: GitHub
- URL: https://github.com/smercer10/blockbuster
- Owner: smercer10
- License: mit
- Created: 2024-07-04T19:14:10.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-08-02T17:41:57.000Z (3 months ago)
- Last Synced: 2024-08-02T20:24:34.503Z (3 months ago)
- Topics: cpp, data-structures, lock-free, non-blocking
- Language: C++
- Homepage: https://smercer10.github.io/blockbuster/
- Size: 296 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Blockbuster
Blockbuster is a WIP collection of efficient and non-blocking data structures for C++. It is by no means production-ready, and probably never will be, as it is primarily a learning exercise.
[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/smercer10/blockbuster/blob/main/LICENSE)
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/smercer10/blockbuster/test.yml?label=CI)](https://github.com/smercer10/blockbuster/actions/workflows/test.yml)
[![Documentation](https://img.shields.io/badge/Documentation-Doxygen-blue)](https://smercer10.github.io/blockbuster)## Progress
The following data structures are currently implemented (documentation can be found [here](https://smercer10.github.io/blockbuster)):
### Single-Producer, Single-Consumer (SPSC)
- Queue (generic, fixed capacity, wait-free)
### Multi-Producer, Multi-Consumer (MPMC)
- Queue (generic, fixed capacity, lock-free)
## Build Locally
### Prerequisites
- C++17 compiler (currently uses some 17-specific features, but seems to build fine without any compiler restrictions)
- CMake 3.14+
- Make (any recent version should be fine)### Commands
- Build the test executables:
```bash
make
```- Run the tests (also builds the test executables if necessary):
```bash
make test
```- Clean the build directory:
```bash
make clean
```