Fibre SPMC benchmarks

one producer broadcasting to many consumers (every consumer receives every item)

Throughput in Melem/s: Million items per second per item sent, median of samples. The best result in each row is highlighted. In batched tables, the bracketed figure is the gain over the same implementation's single-item row. A dash means the implementation has no channel for that cell. Measured on MacBook M4 Pro (14 cores).

Only fibre appears here: no other library in the set has a comparable broadcast channel, and tokio::sync::broadcast drops items for lagging consumers rather than applying backpressure. Throughput is per item sent, so a 1×64 row does 64 times the receive work per unit shown.

sync

CapacityP×Cfibre
11x10.246
11x160.032
11x640.010
1281x114.9
1281x160.016
1281x640.005
10241x117.7
10241x160.029
10241x640.007

sync, batched (512 items per call)

CapacityP×Cfibre
1281x130.4 (2.0x)
1281x163.77 (235.9x)
1281x641.02 (203.8x)
10241x181.6 (4.6x)
10241x1613.6 (469.6x)
10241x644.10 (585.1x)

Native batch: fibre send and receive.

async

CapacityP×Cfibre
11x17.62
11x160.354
11x640.078
1281x143.1
1281x160.755
1281x640.204
10241x120.4
10241x160.759
10241x640.212

async, batched (512 items per call)

CapacityP×Cfibre
1281x1112.8 (2.6x)
1281x1624.0 (31.7x)
1281x649.93 (48.7x)
10241x1142.9 (7.0x)
10241x1658.2 (76.7x)
10241x6423.6 (111.1x)

Native batch: fibre send and receive.