All Projects → MengRao → MPSC_Queue

MengRao / MPSC_Queue

Licence: MIT license
A multi-producer single consumer queue C++ template suitable for async logging with SHM IPC support

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to MPSC Queue

SPSC Queue
A highly optimized single producer single consumer message queue C++ template
Stars: ✭ 185 (+262.75%)
Mutual labels:  message-queue, low-latency, shared-memory
reactor-aeron
A reactive driver for Aeron transport (https://github.com/real-logic/aeron)
Stars: ✭ 43 (-15.69%)
Mutual labels:  low-latency, shared-memory
Jocket
Low-latency java socket implementation (using shared memory)
Stars: ✭ 83 (+62.75%)
Mutual labels:  low-latency, shared-memory
Tcpshm
A connection-oriented persistent message queue framework based on TCP or SHM(shared memory)
Stars: ✭ 314 (+515.69%)
Mutual labels:  message-queue, shared-memory
prophesee ros wrapper
ROS driver for Prophesee event-based sensors
Stars: ✭ 63 (+23.53%)
Mutual labels:  low-latency
low-latency-system
Everything about low latency system.
Stars: ✭ 48 (-5.88%)
Mutual labels:  low-latency
Directory
General information about the Open Markets Initiative
Stars: ✭ 31 (-39.22%)
Mutual labels:  low-latency
Perfect-Kafka
An Express Swift Client of Apache Kafka 0.8, the Stream Processing Platform
Stars: ✭ 20 (-60.78%)
Mutual labels:  message-queue
lhls-simple-live-platform
Very simple low latency live platform prototype
Stars: ✭ 57 (+11.76%)
Mutual labels:  low-latency
orkid-node
Reliable and modern Redis Streams based task queue for Node.js 🤖
Stars: ✭ 61 (+19.61%)
Mutual labels:  message-queue
dynamic-queue
The dynamic queue
Stars: ✭ 17 (-66.67%)
Mutual labels:  message-queue
deadsfu
Dead-simple WebRTC broadcasting. From the browser, or your application. Cloud-native and scalable.
Stars: ✭ 23 (-54.9%)
Mutual labels:  low-latency
DynaX
动态的工具集合 For .Net Core
Stars: ✭ 16 (-68.63%)
Mutual labels:  message-queue
rabbitmq-labs
The source code for my RabbitMQ tutorials.
Stars: ✭ 45 (-11.76%)
Mutual labels:  message-queue
boxtree
Quad/octree building for FMMs in Python and OpenCL
Stars: ✭ 52 (+1.96%)
Mutual labels:  shared-memory
Micro-XRCE-DDS-Agent
Micro XRCE-DDS Agent respository
Stars: ✭ 58 (+13.73%)
Mutual labels:  low-latency
roq-samples
How to use the Roq C++20 API for Live Cryptocurrency Algorithmic and High-Frequency Trading as well as for Back-Testing and Historical Simulation
Stars: ✭ 119 (+133.33%)
Mutual labels:  low-latency
rpc
RPC-like client-service implementation over messaging queue
Stars: ✭ 26 (-49.02%)
Mutual labels:  message-queue
grails-rabbitmq-native
A Grails plugin that provides convenient RabbitMQ functionality using the native Java library for RabbitMQ.
Stars: ✭ 27 (-47.06%)
Mutual labels:  message-queue
dxram
A distributed in-memory key-value storage for billions of small objects.
Stars: ✭ 25 (-50.98%)
Mutual labels:  low-latency

MPSC_Queue

MPSC_Queue is based on single linked list. Producers have the queue allocate a msg object, set msg content and push it back to the queue; Consumer pops all msgs from the queue at a time, processes them and gives the objects back to the queue for later allocation from producers. So neither producer nor consumer needs to allocate memory themselves and no memory copy is needed in any of the operations.

There're two versions of implementation:

MPSCQueue(mpsc_queue.h)

MPSCQueue is for single process usage, it allows for configurating a pre-allocated msg size and max allocated msg size at run time.

SHMMPSCQueue(shm_mpsc_queue.h)

SHMMPSCQueue can reside in shared memory, thus suitable for IPC, and the msg size is fixed at compile time.

Examples

test provides a simple test program and a full fledged async logging implementation(based on muduo), for both versions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].