Skip to content

rusquitto 1.9.1

Choose a tag to compare

@iamaliybi iamaliybi released this 05 Jul 22:27
b7d02ed

Robustness plus a measurement. The audit's ack-bound-throughput and cross-shard single-message-latency items were investigated and found to be at their floor — this release ships the two genuine changes that surfaced, and is not a throughput or latency win.

Measured, not guessed

Single-shard QoS 1 request-response is 55 µs p50 / 76 µs p90 / 128 µs p99 with no Nagle artifacts, so TCP_NODELAY was already effective and the per-request cost is the mqttbytes parse plus the socket round-trip — at parity with a mature C broker. The cross-shard single-message tax is one cross-thread reactor wake, internal to glommio. Neither has application-level headroom.

Changed

  • TCP_NODELAY is now set explicitly on every accepted socket, rather than relying on the listener's option being inherited by the kernel (which happens on Linux but isn't contractual across platforms). A portability guarantee for the latency-critical option — MQTT is request/response, where a coalesced small PUBACK/PUBLISH would cost a round-trip.
  • Single-shard brokers skip the mesh fan-out pathfan_out no longer clones the (absent) peer-senders handle or runs the self-only loop when there are no peers.

These are robustness/cleanup changes. Going below the measured floor is the below-glommio work (parked connections / faster mesh wakeup) tracked in next-steps.md.

Assets

  • rusquitto-x86_64-unknown-linux-gnu — x86-64 Linux binary
  • rusquitto-aarch64-unknown-linux-gnu — ARM64 Linux binary
  • rusquitto.config.toml — annotated reference configuration