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: 6 months 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 (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-02T17:41:57.000Z (over 1 year ago)
- Last Synced: 2025-06-12T12:49:37.924Z (10 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.
[](https://github.com/smercer10/blockbuster/blob/main/LICENSE)
[](https://github.com/smercer10/blockbuster/actions/workflows/test.yml)
[](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
```