Skip to content

Latest commit

 

History

History
63 lines (35 loc) · 3.16 KB

File metadata and controls

63 lines (35 loc) · 3.16 KB

rzmq: Asynchronous Pure Rust ZeroMQ with io-uring and TCP Cork Acceleration

crates.io License: MPL-2.0

rzmq is a high-performance, asynchronous pure Rust implementation of ZeroMQ (ØMQ) built on Tokio.

Implements the ZMTP 2/3.1 wire protocol with familiar ZeroMQ socket patterns.

Provides dedicated io_uring workers on Linux, allowing individual sockets to opt-in to trade CPU for lower latency and higher throughput.

Delivers stunningly superior throughput and lower latency compared to every other ZeroMQ implementation as shown in high-throughput benchmarks included. No one comes close.

Fast, boring and correct.

Performance Highlights

TCP Loopback PUSH/PULL Sockets Fan-In, 10-second window, Adaptive Throttling disabled.

Linux release build, AMD Ryzen 5 7640U Balanced Power Profile.

Standard, 4 PUSH | 6.1 M msg/s - 64 B | ~17 GB/s - 32 KB · cork

io_uring/1 worker, 4 PUSH | 6.5 M msg/s - 64 B · cork | 7.9 GB/s - 32 KB · multishot + zerocopy (600 second sustained)

io_uring/4 workers, 8 PUSH | 3.4 M msg/s - 4 KB · multishot | ~17.3 GB/s - 32 KB · multishot + cork

WARNING: Always do your own testing for production use. Benchmarks tell a narrative against one environment and library configuration at a snapshot of time. Never trust any benchmarks especially library comparison benchmarks done over a short duration. Benchmarks are always out of date, unreliable and these numbers are provided as tongue in cheek numbers: No universal guarantees ;).

Project Status: Beta ⚠️

rzmq is currently in Beta, used in long term Production software.

See core/README.md for full details.

Notable Users

Hi Stakes Markets Game - The world's most advanced financial simulator, available on iPhone and Android.

Structure

  • core/: The main rzmq library. See core/README.md for full documentation, installation, API usage, and examples.
  • cli/: Command-line utility for generating Noise_XX keys. See cli/README.md.
  • bench/: Standalone benchmarking tools. See bench/.

Getting Started

Please refer to core/README.md for installation instructions, prerequisites, API usage, and examples.

Benchmarks

Full results across all patterns and configurations are in bench/docs/:

Platform Results
Linux (AMD Ryzen 5 7640U) bench/docs/linux_bench.md
macOS (Apple M4) bench/docs/mac_bench.md

See the bench/ crate for instructions on running benchmarks yourself.

License

rzmq is licensed under the Mozilla Public License Version 2.0 (MPL-2.0). You are free to use, modify, and distribute it under the terms of the MPL-2.0, which requires that modifications to MPL-licensed files be made available under the same license.