Benchmark Results

Redis + Hybrid Benchmark Comparison

Detailed Redis and hybrid benchmark tables with short takeaways up front.

What this page shows

This page keeps the detailed Redis and hybrid tables. The main conclusions are:

  • pure Redis-backed limiting is far slower than local-only paths because every call pays network and Redis execution cost
  • hybrid is dramatically faster because it keeps most admission work local
  • runtime choice can move the numbers, but provider choice moves them much more

Use this page when you want the raw tables behind those takeaways.

Result tables

Backends compared:

  • trypema Redis provider (Lua sliding-window)
  • trypema Hybrid provider (local fast-path + periodic Redis sync)
  • redis-cell module (CL.THROTTLE)
  • GCRA Lua script (equivalent to go-redis/redis_rate allowN)

Caveat: semantics differ, so these are backend-cost comparisons, not strict behavioral equivalence.

Hybrid note: the Hybrid provider uses a local fast-path and periodically syncs to Redis, so it is not a pure "Redis round-trip per op" backend. It is included here because it still depends on Redis and is a common deployment choice when you want higher throughput with bounded state lag.

In these results, Hybrid runs use sync_interval_ms = 10ms.

Module-based approaches (like redis-cell) tend to be faster because the logic runs as native Redis module code with less Lua interpreter overhead and fewer internal steps than multi-op Lua scripts.

Hot key (rate_limit_per_s=1000)

Workload: --key-dist hot — always uses a single key (user_0).

tokio runtime

Backendops/sp50 (us)p95 (us)p99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)64,36924332336749081430,0161,901,152000
gcra (Lua allowN-style)52,21130339143861081630,0151,536,405000
trypema (Redis + Absolute)47,6203324335027031,16030,6031,398,032000
trypema (Redis + Suppressed)41,0323865215999061,12233,11501,3061,196,6170
trypema (Hybrid + Absolute)11,360,28011114530,000340,794,220000
trypema (Hybrid + Suppressed)10,568,47611111,214,46329,98405,007317,034,4100

smol runtime

Backendops/sp50 (us)p95 (us)p99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)83,22318722725435755630,0162,466,720000
gcra (Lua allowN-style)53,24831235840048771130,0151,567,457000
trypema (Redis + Absolute)43,4903734254721,3201,32830,0001,274,729000
trypema (Redis + Suppressed)39,97539251256373591033,18102,7341,163,3630
trypema (Hybrid + Absolute)10,995,32311113,21130,000329,834,016000
trypema (Hybrid + Suppressed)10,629,54311111,524,73564,98705,004318,828,2040

Uniform keys (100k keys, rate_limit_per_s=1e9)

Workload: --key-dist uniform --key-space 100000 — random key per op, effectively unlimited rate.

tokio runtime

Backendops/sp50 (us)p95 (us)p99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)58,2282593393953,79115,1351,750,3820000
gcra (Lua allowN-style)52,2513023894356141,3651,570,8370000
trypema (Redis + Absolute)39,5783965416279632,3091,190,0450000
trypema (Redis + Suppressed)33,6084486617683,23310,5351,010,2510000
trypema (Hybrid + Absolute)8,628,8331111927,167259,464,9430000
trypema (Hybrid + Suppressed)9,216,2021111322,719277,038,6400000

smol runtime

Backendops/sp50 (us)p95 (us)p99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)72,6462102532832,9594,4872,184,0640000
gcra (Lua allowN-style)52,32030236141677016,9751,572,7180000
trypema (Redis + Absolute)38,3534025355827452,3091,152,8330000
trypema (Redis + Suppressed)31,7044846337393,18910,335953,1650000
trypema (Hybrid + Absolute)4,044,466111916,087121,575,1350000
trypema (Hybrid + Suppressed)2,817,06211142526,62384,679,9890000

Notes:

  • redis-cell and gcra show higher ops/s under smol for both workloads. For pure Redis round-trip backends, smol's cooperative executor reduces context-switch overhead, particularly under hot-key contention.
  • Trypema's Redis provider throughput is broadly comparable across runtimes (~5–10% variance).
  • Hybrid ops/s in the uniform case is substantially lower under smol (~4M vs ~9M for absolute). Hybrid's local fast-path relies on many concurrent atomics; tokio's work-stealing scheduler distributes these more evenly, while smol's cooperative executor serialises more of that work.
  • For pure Redis round-trip backends, runtime choice has a modest effect relative to the order-of-magnitude gap between Redis round-trip and Hybrid local fast-path.

Redis + Hybrid uniform keys (matrix)

These runs come from make stress-redis-uniform-matrix-tokio and make stress-redis-uniform-matrix-smol (stress harness) and vary key_space and rate_limit_per_s while keeping the rest fixed:

  • --threads 16 --duration-s 30 --window-s 10 --group-ms 10 --mode max --key-dist uniform

Hybrid note: Hybrid runs use sync_interval_ms = 10ms.

The harness prints results in run groups of six (two Redis module/script backends + Redis provider + Hybrid provider). To keep it readable, the matrix is split by (key_space, rate_limit_per_s).

key_space=10, rate_limit_per_s=1

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)55,8224507401,2851,674,7510000
gcra (Lua allowN-style)50,6144476051,1191,518,5000000
trypema (Redis + Absolute)46,0085057109233001,380,002000
trypema (Redis + Suppressed)38,1846689314,6191,1960401,144,2920
trypema (Hybrid + Absolute)10,658,472119,961,471300319,770,837000
trypema (Hybrid + Suppressed)7,860,2451299,327396076235,818,5370
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)79,2992714687452,378,9920000
gcra (Lua allowN-style)49,4964328981,4471,484,9220000
trypema (Redis + Absolute)51,7304125108893001,551,628000
trypema (Redis + Suppressed)41,8925727591,0591,1410401,255,5840
trypema (Hybrid + Absolute)11,025,754119,551300330,777,133000
trypema (Hybrid + Suppressed)9,716,52611196,6075120111291,508,1920

key_space=10, rate_limit_per_s=10

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)61,3103835398541,839,3920000
gcra (Lua allowN-style)49,6104596801,7101,488,3850000
trypema (Redis + Absolute)45,0675237481,0313,0021,349,077000
trypema (Redis + Suppressed)38,9776401,0051,2575,55304901,163,3250
trypema (Hybrid + Absolute)8,285,258119,953,2793,000248,567,517000
trypema (Hybrid + Suppressed)7,994,4421299,1353,5720523239,841,0650
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)77,3252695085352,319,7920000
gcra (Lua allowN-style)48,2854226346541,448,5640000
trypema (Redis + Absolute)46,3704705876483,0001,388,120000
trypema (Redis + Suppressed)40,9375751,0241,0935,68904901,221,9660
trypema (Hybrid + Absolute)11,024,339118,7833,000330,731,808000
trypema (Hybrid + Suppressed)9,699,24511192,1274,6190568290,981,0340

key_space=10, rate_limit_per_s=100

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)61,3693835038981,841,1700000
gcra (Lua allowN-style)49,4334586312,5711,483,0720000
trypema (Redis + Absolute)44,4625287131,12530,0131,303,928000
trypema (Redis + Suppressed)37,9956871,3145,54333,95602,1641,103,7440
trypema (Hybrid + Absolute)9,134,9031110,80731,467274,029,615000
trypema (Hybrid + Suppressed)8,697,2161199,13534,53205,042260,889,8660
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)70,8772913716512,126,3520000
gcra (Lua allowN-style)48,2574285811,1981,447,7380000
trypema (Redis + Absolute)46,0654701,6763,99330,0001,351,970000
trypema (Redis + Suppressed)41,83159474284033,05702,0911,219,8010
trypema (Hybrid + Absolute)11,001,5271110,04730,000330,021,664000
trypema (Hybrid + Suppressed)9,589,11111192,63942,21005,600287,629,0590

key_space=10, rate_limit_per_s=10,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)61,7623824776751,852,9470000
gcra (Lua allowN-style)49,5484616861,4281,486,5160000
trypema (Redis + Absolute)42,9775688211,7681,289,3750000
trypema (Redis + Suppressed)38,8166569781,8611,164,5560000
trypema (Hybrid + Absolute)8,684,7961513,5672,443,095258,115,621000
trypema (Hybrid + Suppressed)7,115,6381399,7113,226,990054,298210,198,3310
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)70,5342984118642,116,0620000
gcra (Lua allowN-style)48,4664421,4011,4021,454,0100000
trypema (Redis + Absolute)42,6615571,2051,3711,279,8460000
trypema (Redis + Suppressed)42,3165721,0141,2721,269,5170000
trypema (Hybrid + Absolute)11,063,173119,2473,000,000328,900,198000
trypema (Hybrid + Suppressed)9,741,50711195,7114,430,15805,105287,813,9180

key_space=10, rate_limit_per_s=100,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)61,2103784731,0231,836,3890000
gcra (Lua allowN-style)49,6644617311,4281,489,9940000
trypema (Redis + Absolute)42,2745767151,1981,268,3020000
trypema (Redis + Suppressed)38,5536498832,0691,156,6640000
trypema (Hybrid + Absolute)8,053,2771519,47124,245,359217,364,752000
trypema (Hybrid + Suppressed)9,142,90611161,91930,113,4420596,474243,590,1080
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)68,2113524765562,046,3620000
gcra (Lua allowN-style)48,6434538201,3101,459,3300000
trypema (Redis + Absolute)41,2386731,6061,8911,237,1880000
trypema (Redis + Suppressed)40,0486257739851,201,4440000
trypema (Hybrid + Absolute)11,387,286119,994,23930,000,000311,624,114000
trypema (Hybrid + Suppressed)10,085,00511193,02335,133,61301,688,088265,734,3781

key_space=1,000, rate_limit_per_s=1

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)60,6183885121,1441,818,7720000
gcra (Lua allowN-style)48,7194686951,4641,461,7990000
trypema (Redis + Absolute)41,8745839202,11930,0001,226,352000
trypema (Redis + Suppressed)27,7449451,3463,99959,26101,230771,8840
trypema (Hybrid + Absolute)7,350,822149,854,97533,323220,509,608000
trypema (Hybrid + Suppressed)2,343,6751668509,951219,78406,94870,762,3660
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)66,1613447881,1161,985,0210000
gcra (Lua allowN-style)48,0914226126421,442,8920000
trypema (Redis + Absolute)40,3176141,1201,31430,0001,179,592000
trypema (Redis + Suppressed)30,1518342,9833,38361,28701,388841,9650
trypema (Hybrid + Absolute)9,643,2411195430,460289,287,347000
trypema (Hybrid + Suppressed)2,809,6191620373,247251,10007,28284,036,0350

key_space=1,000, rate_limit_per_s=10

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,9924646361,5591,619,8500000
gcra (Lua allowN-style)44,0765458131,5831,322,3490000
trypema (Redis + Absolute)37,4506779521,746300,000823,607000
trypema (Redis + Suppressed)28,3539411,2462,061311,600018,935520,1450
trypema (Hybrid + Absolute)8,243,81011134,303356,529246,977,824000
trypema (Hybrid + Suppressed)2,590,5281662454,3991,902,681047,56375,768,2530
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,2074118301,0401,776,3600000
gcra (Lua allowN-style)47,4974899961,0571,425,0180000
trypema (Redis + Absolute)38,9326331,1741,247300,000868,025000
trypema (Redis + Suppressed)30,1598212,2772,415312,016017,266575,5560
trypema (Hybrid + Absolute)9,515,9141164,767205,380285,299,319000
trypema (Hybrid + Suppressed)3,118,7091599384,5111,660,887033,64991,873,4940

key_space=1,000, rate_limit_per_s=100

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,9914716791,2901,619,8960000
gcra (Lua allowN-style)44,3575447433,2531,330,7760000
trypema (Redis + Absolute)33,7708231,3033,7671,013,2150000
trypema (Redis + Suppressed)29,8448991,5272,965895,3780000
trypema (Hybrid + Absolute)8,191,2571110,2793,359,642242,424,453000
trypema (Hybrid + Suppressed)3,145,5381639338,94313,237,7480295,47581,227,9670
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,8923989311,1961,796,8550000
gcra (Lua allowN-style)47,5844541,4994,7111,427,6840000
trypema (Redis + Absolute)35,6777981,4242,3471,070,3890000
trypema (Redis + Suppressed)32,8187921,2634,057984,6000000
trypema (Hybrid + Absolute)9,521,8661180,8313,572,333282,109,505000
trypema (Hybrid + Suppressed)3,626,5601579377,85514,795,6710118,03193,892,9500

key_space=1,000, rate_limit_per_s=10,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)54,0464717543,5791,621,4690000
gcra (Lua allowN-style)44,1425458032,3051,324,3840000
trypema (Redis + Absolute)34,2267681,3193,1211,026,8450000
trypema (Redis + Suppressed)29,6059021,3122,027888,2480000
trypema (Hybrid + Absolute)9,008,798194,411270,637,4830000
trypema (Hybrid + Suppressed)8,487,169121,991254,627,3260000
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)62,4603597021,0321,873,9490000
gcra (Lua allowN-style)48,2134477761,1371,446,5000000
trypema (Redis + Absolute)35,5857199831,4201,067,6490000
trypema (Redis + Suppressed)33,8397811,8671,8691,015,2050000
trypema (Hybrid + Absolute)11,530,183111,612,799212,220,227133,697,111000
trypema (Hybrid + Suppressed)9,728,075114,997,119258,062,617027,349,3416,445,9192

key_space=1,000, rate_limit_per_s=100,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,8074757473,8651,614,3630000
gcra (Lua allowN-style)44,3395397551,2041,330,2540000
trypema (Redis + Absolute)34,1037841,4542,6351,023,1930000
trypema (Redis + Suppressed)29,4289201,4912,523882,9340000
trypema (Hybrid + Absolute)7,358,353163,647220,779,7090000
trypema (Hybrid + Suppressed)7,216,898181,297216,521,9180000
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)71,7043006727222,151,2440000
gcra (Lua allowN-style)49,6214125301,1701,488,7380000
trypema (Redis + Absolute)39,9255751,3251,4761,197,8380000
trypema (Redis + Suppressed)34,6667381,3641,4261,040,0390000
trypema (Hybrid + Absolute)14,560,18211589436,829,9760000
trypema (Hybrid + Suppressed)13,351,37111668400,556,0350000

key_space=10,000, rate_limit_per_s=1

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,3674726972,7051,601,3560000
gcra (Lua allowN-style)43,6775608073,6611,310,6440000
trypema (Redis + Absolute)36,3267181,2862,631300,000790,020000
trypema (Redis + Suppressed)29,2499471,96112,455418,521014,643444,4940
trypema (Hybrid + Absolute)6,234,7421366526,335428,909186,650,383000
trypema (Hybrid + Suppressed)51,1102,1033,0631,065,983309,754041,7891,182,5180
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)68,9192974211,6662,067,9640000
gcra (Lua allowN-style)47,60942567510,5431,428,6410000
trypema (Redis + Absolute)40,0265921,4743,589300,000901,138000
trypema (Redis + Suppressed)31,5228322,8774,191422,336013,071510,4950
trypema (Hybrid + Absolute)5,650,6181392192,383443,519169,136,267000
trypema (Hybrid + Suppressed)58,7232,6073,769555,519299,297066,4331,410,4440

key_space=10,000, rate_limit_per_s=10

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)53,7484801,2513,2091,612,7990000
gcra (Lua allowN-style)43,8985528532,1531,317,2170000
trypema (Redis + Absolute)33,6907791,3632,8411,010,9420000
trypema (Redis + Suppressed)30,0919141,7919,247902,9400000
trypema (Hybrid + Absolute)8,275,750146251,6474,127,161244,238,026000
trypema (Hybrid + Suppressed)213,6051,0572,081539,6473,734,286091,9942,649,4230
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)69,7603025319982,093,3060000
gcra (Lua allowN-style)48,3274146841,1451,450,1650000
trypema (Redis + Absolute)37,6266619911,7011,129,1060000
trypema (Redis + Suppressed)31,3748321,6222,967941,3980000
trypema (Hybrid + Absolute)4,817,22915896,737,9194,277,692140,264,903005
trypema (Hybrid + Suppressed)123,7852,0832,927635,3912,685,0180592,420436,7760

key_space=10,000, rate_limit_per_s=100

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,4913902,2094,9591,785,1600000
gcra (Lua allowN-style)48,5084766201,1501,455,7060000
trypema (Redis + Absolute)35,6557473,20338,8151,069,9520000
trypema (Redis + Suppressed)33,4707781,3713,1151,004,3500000
trypema (Hybrid + Absolute)5,683,23818552,06331,297,611139,243,571000
trypema (Hybrid + Suppressed)1,096,35611,610492,54330,084,03602,120,136693,4080
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)54,8834002,7375,1031,646,8000000
gcra (Lua allowN-style)44,0474751,0062,0531,321,6420000
trypema (Redis + Absolute)34,5126818761,5231,035,5530000
trypema (Redis + Suppressed)31,7548131,2731,549952,7840000
trypema (Hybrid + Absolute)5,619,2501485106,75130,910,552137,696,051009
trypema (Hybrid + Suppressed)730,46112,351600,57521,225,7190667,83924,1030

key_space=10,000, rate_limit_per_s=10,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,7073941,9844,4951,791,9270000
gcra (Lua allowN-style)48,5154696511,4841,455,8130000
trypema (Redis + Absolute)37,4546638991,4021,123,9480000
trypema (Redis + Suppressed)31,5338361,7942,393946,2620000
trypema (Hybrid + Absolute)10,069,860121,291302,213,5560000
trypema (Hybrid + Suppressed)6,293,40611113,119188,865,5450000
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,1704072,6914,8711,775,4000000
gcra (Lua allowN-style)44,4354811,1881,4511,333,3070000
trypema (Redis + Absolute)33,6896861,0101,1361,010,8590000
trypema (Redis + Suppressed)30,7658671,8792,667923,1290000
trypema (Hybrid + Absolute)10,270,907112,665308,181,9180000
trypema (Hybrid + Suppressed)9,500,654112,401285,069,5350000

key_space=10,000, rate_limit_per_s=100,000

tokio runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)59,0484022,3833,9651,772,0220000
gcra (Lua allowN-style)48,5774726372,4191,457,6750000
trypema (Redis + Absolute)38,2606549682,0691,148,1880000
trypema (Redis + Suppressed)33,7298051,3542,3811,012,1790000
trypema (Hybrid + Absolute)9,690,7741911,175290,829,0990000
trypema (Hybrid + Suppressed)9,469,741112,695284,162,4780000
smol runtime
Backendops/sp99 (us)p99.9 (us)max (us)allowedrejectedsuppressed_allowedsuppressed_deniederrors
redis-cell (CL.THROTTLE)56,6243992,69511,5191,699,0180000
gcra (Lua allowN-style)44,1434718231,3031,324,5310000
trypema (Redis + Absolute)33,7996961,2604,7471,014,1640000
trypema (Redis + Suppressed)31,0808031,4412,207932,5720000
trypema (Hybrid + Absolute)10,865,742113,577326,026,8130000
trypema (Hybrid + Suppressed)9,423,345113,085282,749,0030000

Notes:

  • All observed errors in these runs are Redis timeouts (RedisError(timed out)) surfaced during Hybrid state reads.
  • Matrix results above were captured with both the tokio runtime (make stress-redis-uniform-matrix-tokio) and the smol runtime (make stress-redis-uniform-matrix-smol).