genhttp-kestrel
Emerging · C# · engine: kestrel · tuned configuration · completeness 4/4
Lightweight, embeddable and modular C# web server.
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, less 2.5% for each of routing, middleware, request and response the entry does not do for you - its completeness factor, which the WebSocket and gRPC families do not carry. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.
| Family | Rank | Composite |
|---|---|---|
| HTTP/1.1 | 26 of 93 | 3633 |
| HTTP/2 | 18 of 28 | 525 |
| HTTP/3 | 9 of 11 | 506 |
| WebSocket | 10 of 25 | 1108 |
Every result
Alpha Round, 26 runs. Requests per second is the best of three; latency, CPU and memory come from that run.
| Category | Profile | Conns | Req/sec | Avg | p99 | CPU | Memory |
|---|---|---|---|---|---|---|---|
| Connection | Baseline | 4,096 | 1,366,594 | 2.28ms | 8.80ms | 5275.8% | 525MiB |
| Connection | Pipelined | 4,096 | 3,369,702 | 16.34ms | 122.10ms | 5998.4% | 456MiB |
| Connection | Short-lived | 4,096 | 481,565 | 1.55ms | 11.40ms | 2172.9% | 238MiB |
| Concurrency | Async Delay | 32,000 | 824,919 | 32.77ms | 63.60ms | 4725.5% | 1.5GiB |
| Efficiency | Latency-10K | 1,024 | 9,981 | 112.4us | 116.0us | 57.0% | 243MiB |
| Efficiency | Latency-1M | 1,024 | 997,877 | 887.4us | 5986.0us | 3334.5% | 306MiB |
| Efficiency | Latency-500K/8 | 1,024 | 299,351 | 3985786.4us | 7915520.0us | 735.1% | 323MiB |
| Workload | JSON Comp | 4,096 | 414,635 | 6.99ms | 39.30ms | 5777.9% | 676MiB |
| Workload | JSON Comp | 16,384 | 408,913 | 12.00ms | 57.20ms | 5712.1% | 784MiB |
| Workload | JSON TLS | 4,096 | 586,512 | 8.80ms | 285.45ms | 5935.3% | 1.0GiB |
| Workload | 8Gbit | 512 | 49,250 | 245.2us | 3837.0us | 565.2% | 315MiB |
| Database | Async DB | 1,024 | 182,455 | 5.02ms | 13.60ms | 3114.0% | 435MiB |
| HTTP/2 | Baseline | 256 | 2,110,767 | 11.76ms | 77.82ms | 6121.3% | 1.4GiB |
| HTTP/2 | Baseline | 1,024 | 1,936,344 | 52.11ms | 442.50ms | 5795.1% | 3.1GiB |
| HTTP/2 | Static | 256 | 273,917 | 29.47ms | 268.78ms | 5962.5% | 2.4GiB |
| HTTP/2 | Static | 1,024 | 213,682 | 147.59ms | 1.10s | 5247.9% | 4.9GiB |
| HTTP/3 | Baseline | 64 | 533,911 | 6.91ms | 17.64ms | 6125.9% | 2.0GiB |
| HTTP/3 | Static | 64 | 101,471 | 40.31ms | 262.43ms | 3756.9% | 1.9GiB |
| WebSocket | Echo | 512 | 1,693,629 | 301us | 1.65ms | 5421.6% | 326MiB |
| WebSocket | Echo | 4,096 | 1,699,889 | 1.81ms | 6.55ms | 5429.4% | 653MiB |
| WebSocket | Echo | 16,384 | 1,680,965 | 1.96ms | 6.48ms | 5463.4% | 734MiB |
| WebSocket | Echo Pipelined | 512 | 21,577,324 | 379us | 2.32ms | 5019.1% | 261MiB |
| WebSocket | Echo Pipelined | 4,096 | 21,287,705 | 2.10ms | 8.60ms | 5314.0% | 559MiB |
| WebSocket | Echo Pipelined | 16,384 | 21,701,789 | 2.39ms | 10.20ms | 5593.2% | 562MiB |
| WebSocket | Echo Short-lived | 512 | 463,910 | 99us | 562us | 2364.1% | 255MiB |
| WebSocket | Echo Short-lived | 4,096 | 455,197 | 103us | 557us | 2329.6% | 250MiB |
Compared with
The C# entries around genhttp-kestrel on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.
| Entry | Composite | vs genhttp-kestrel | |
|---|---|---|---|
| genhttp-ioxide | 7074 | +95% | head to head |
| sockets | 4079 | +12% | head to head |
| minima-sync | 3780 | +4% | head to head |
| effinitive | 3601 | -1% | head to head |
| carter | 3496 | -4% | head to head |
Compare genhttp-kestrel with any C# entry · Compare genhttp-kestrel with any entry, in any language · Every C# entry, ranked
Results updated · How the benchmark is run · The machine · Add or fix an entry