Skip to content

Commit b8df5c1

Browse files
authored
Update README
1 parent 87a3209 commit b8df5c1

File tree

1 file changed

+44
-1
lines changed

1 file changed

+44
-1
lines changed

README.md

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,47 @@
11
# SlickQueue
2-
A robust, ring buffer based, lock-free, header-only, C++ MPMC queue
2+
3+
SlickQueue is a header-only C++ library that provides a lock-free,
4+
multi-producer multi-consumer (MPMC) queue built on a ring buffer. It is
5+
designed for high throughput concurrent messaging and can optionally operate
6+
over shared memory for inter-process communication.
7+
8+
## Features
9+
10+
- Lock-free operations for multiple producers and consumers
11+
- Header-only implementation
12+
- Optional shared-memory mode
13+
- No dynamic allocation on the hot path
14+
15+
## Getting Started
16+
17+
Simply add the `include` directory to your project's include path and include
18+
the header:
19+
20+
```cpp
21+
#include "slick_queue.h"
22+
23+
slick::SlickQueue<int> queue(1024);
24+
auto slot = queue.reserve();
25+
*queue[slot] = 42;
26+
queue.publish(slot);
27+
28+
uint64_t cursor = 0;
29+
auto result = queue.read(cursor);
30+
```
31+
32+
## Building Tests
33+
34+
A small test suite is provided using CMake and Catch. Build and run the tests
35+
with:
36+
37+
```bash
38+
cmake -S . -B build
39+
cmake --build build --target slick_queue_tests
40+
./build/tests/slick_queue_tests
41+
```
42+
43+
## License
44+
45+
SlickQueue is released under the [MIT License](LICENSE).
346

447

0 commit comments

Comments
 (0)