Skip to content

A port of the LMAX Disruptor to Rust

License

Notifications You must be signed in to change notification settings

sklose/disrustor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e6a3e92 · Jun 5, 2023

History

60 Commits
Jun 5, 2023
Sep 8, 2019
Jun 5, 2023
Jun 5, 2023
Jun 5, 2023
Apr 11, 2023
Apr 15, 2023
Jun 5, 2023
Jun 5, 2023
Sep 8, 2019
Apr 12, 2023
Apr 12, 2023

Repository files navigation

CI crates.io codecov

Disrustor

This project is a port of the LMAX Disruptor to Rust.

Features

  • Single Producer
  • Batch Consumer
  • Blocking Wait Strategy
  • Spinning Wait Strategy
  • Multi Producer
  • Worker Pools
  • DSL
  • Documentation

Benchmarks

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

Name Batch Size Throughput
mpsc channel 11 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