Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sklose/disrustor

A port of the LMAX Disruptor to Rust
https://github.com/sklose/disrustor

disruptor lmax threading

Last synced: 1 day ago
JSON representation

A port of the LMAX Disruptor to Rust

Awesome Lists containing this project

README

        

[![CI](https://github.com/sklose/disrustor/actions/workflows/ci.yaml/badge.svg)](https://github.com/sklose/disrustor/actions/workflows/ci.yaml)
[![crates.io](https://img.shields.io/crates/v/disrustor.svg)](https://crates.io/crates/disrustor)
[![codecov](https://codecov.io/gh/sklose/disrustor/branch/master/graph/badge.svg?token=UE3RML6O57)](https://codecov.io/gh/sklose/disrustor)

# Disrustor

This project is a port of the [LMAX Disruptor](https://lmax-exchange.github.io/disruptor/) to Rust.

# Features

- [x] Single Producer
- [x] Batch Consumer
- [X] Blocking Wait Strategy
- [X] Spinning Wait Strategy
- [ ] Multi Producer
- [ ] Worker Pools
- [X] DSL
- [ ] Documentation

# Benchmarks

Preliminary benchmark results for sending i32-sized messages from a producer to a consumer.

| Name | Batch Size | Throughput |
|------|------------|------------|
| mpsc channel | 1[1](#mpsc-footnote) | 34.894 Melem/s |
| disrustor spinning | 1 | 38.260 Melem/s |
| disrustor spinning | 10 | 941.39 Melem/s |
| disrustor spinning | 50 | 940.77 Melem/s |
| disrustor spinning | 100 | 942.68 Melem/s |
| disrustor spinning | 1000 | 942.02 Melem/s |
| disrustor spinning | 2000 | 940.75 Melem/s |
| disrustor spinning | 4000 | 938.44 Melem/s |
| disrustor blocking | 1 | 7.0191 Melem/s |
| disrustor blocking | 10 | 85.386 Melem/s |
| disrustor blocking | 50 | 997.89 Melem/s |
| disrustor blocking | 100 | 998.97 Melem/s |
| disrustor blocking | 1000 | 1.0032 Gelem/s |
| disrustor blocking | 2000 | 999.67 Melem/s |
| disrustor blocking | 4000 | 999.15 Melem/s |

1: mpsc channels do not support batching

# Related Work

- [Turbine](https://github.com/polyfractal/Turbine)