HttpArena
Frameworks

trillium

Emerging · Rust · engine: trillium-http · standard configuration

Trillium 1.x async Rust web framework on tokio. trillium-rustls for TLS (h1 + h2 via ALPN), trillium-quinn for HTTP/3, trillium-websockets for /ws, trillium-static for /static/* served from disk per request, trillium-compression middleware for runtime gzip/brotli, trillium-api for JSON handlers, trillium-grpc for the benchmark.BenchmarkService gRPC endpoints, deadpool-postgres for async-db and crud.

Composite rank

Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.16 of 71601
HTTP/213 of 1630
HTTP/35 of 618
Gateway3 of 4126
gRPC4 of 592
WebSocket18 of 2017

Every result

Alpha Round, 46 runs. Requests per second is the best of three; latency, CPU and memory come from that run.

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline512607,122790us1.85ms5777.3%134MiB
ConnectionBaseline4,096663,0792.83ms9.20ms6113.0%200MiB
ConnectionPipelined5122,582,2592.91ms34.70ms6688.1%125MiB
ConnectionPipelined4,0962,756,99112.67ms100.90ms6464.1%234MiB
ConnectionShort-lived512502,168413us1.84ms2356.9%216MiB
ConnectionShort-lived4,096483,4801.19ms2.25ms2341.3%224MiB
WorkloadJSON4,096536,2341.22ms3.63ms4748.6%299MiB
WorkloadJSON Comp512118,5583.92ms9.04ms6124.8%747MiB
WorkloadJSON Comp4,096119,8147.30ms26.80ms6162.4%773MiB
WorkloadJSON Comp16,384112,72910.42ms34.50ms6019.9%755MiB
WorkloadJSON TLS4,096612,4265.83ms33.35ms6322.8%414MiB
WorkloadUpload322,64712.06ms36.90ms2016.3%109MiB
WorkloadUpload2563,05377.77ms299.30ms3081.2%204MiB
WorkloadStatic1,02420,56446.03ms589.10ms2784.4%492MiB
WorkloadStatic4,09623,750122.65ms2.00s3809.4%453MiB
WorkloadStatic6,80019,884135.99ms2.00s1855.6%637MiB
WorkloadStatic TLS1,02425,31934.06ms219.63ms3095.0%366MiB
WorkloadStatic TLS4,09622,942100.77ms568.72ms4244.9%497MiB
WorkloadStatic TLS6,80019,470157.95ms746.69ms2442.6%722MiB
DatabaseAsync DB1,024215,2453.66ms5.76ms3190.0%269MiB
DatabaseCRUD4,096464,6456.00ms11.30ms4267.0%343MiB
DatabaseFortunes1,024219,6793.34ms5.38ms5315.3%302MiB
Multi-endpointAPI-425655,5904.00ms10.20ms399.2%68MiB
Multi-endpointAPI-161,024183,7821.51ms4.09ms1508.5%141MiB
HTTP/2Baseline2561,309,10719.05ms103.29ms5766.8%1.7GiB
HTTP/2Baseline1,0241,250,29664.77ms468.94ms5826.0%6.6GiB
HTTP/2Static25620,963354.75ms1.17s3940.3%1.2GiB
HTTP/2Static1,02418,5961.05s3.05s3934.9%2.2GiB
HTTP/3Baseline64448,8976.78ms63.40ms2440.7%233MiB
HTTP/3Static6418,60061.00ms307.65ms3715.2%645MiB
gRPCUnary256812,49231.55ms272.83ms6211.7%577MiB
gRPCUnary1,024766,22380.35ms711.68ms6154.9%1.9GiB
gRPCUnary TLS256825,70130.93ms97.91ms6199.3%879MiB
gRPCUnary TLS1,024696,75297.50ms843.86ms6145.3%2.0GiB
gRPCStream642,215,000516.68ms754.26ms6179.1%642MiB
gRPCStream TLS642,256,000507.77ms662.44ms6167.0%598MiB
GatewayGateway (H2)51284,883180.12ms2.26s5005.5%2.8GiB
GatewayGateway (H2)1,02479,440350.72ms4.46s5421.1%5.2GiB
GatewayGateway (H3)6483,65024.32ms89.21ms3996.9%944MiB
GatewayGateway (H3)25662,121127.74ms783.03ms2828.2%2.3GiB
WebSocketEcho512443,2161.08ms2.47ms3275.4%341MiB
WebSocketEcho4,096354,0944.29ms11.60ms4187.7%667MiB
WebSocketEcho16,384348,5399.88ms18.80ms4061.9%1.2GiB
WebSocketEcho Pipelined5124,612,2101.70ms4.34ms6059.1%330MiB
WebSocketEcho Pipelined4,0964,972,2875.02ms19.80ms6465.3%623MiB
WebSocketEcho Pipelined16,3844,810,00912.33ms50.00ms6588.6%1.2GiB

How the benchmark is run · The machine · Add or fix an entry