disrustor icon indicating copy to clipboard operation
disrustor copied to clipboard

A port of the LMAX Disruptor to Rust

CI crates.io codecov

Disrustor

This project is a port of the LMAX 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 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