https://github.com/aaronriekenberg/api-benchmark
Benchmarking 1 million HTTP requests to rust/go/kotlin/node/python REST APIs in GitHub actions. Only one can break 10 seconds and 100K RPS.
https://github.com/aaronriekenberg/api-benchmark
benchmarks golang http kotlin nodejs python rest rust
Last synced: 5 months ago
JSON representation
Benchmarking 1 million HTTP requests to rust/go/kotlin/node/python REST APIs in GitHub actions. Only one can break 10 seconds and 100K RPS.
- Host: GitHub
- URL: https://github.com/aaronriekenberg/api-benchmark
- Owner: aaronriekenberg
- License: mit
- Created: 2025-02-02T17:42:21.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-24T09:46:34.000Z (6 months ago)
- Last Synced: 2025-10-24T11:26:38.636Z (6 months ago)
- Topics: benchmarks, golang, http, kotlin, nodejs, python, rest, rust
- Language: Shell
- Homepage:
- Size: 629 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# api-benchmark
Benchmarking 1 million HTTP requests to rust/go/kotlin/node/python REST APIs in GitHub actions.
# Latest results:
* [latest.md](https://github.com/aaronriekenberg/api-benchmark/blob/main/results/latest.md)
# REST Server APIs:
* [rust-api](https://github.com/aaronriekenberg/api-benchmark/tree/main/rust-api) using [axum](https://github.com/tokio-rs/axum)
* [go-api](https://github.com/aaronriekenberg/api-benchmark/tree/main/go-api) using builtin `net/http`
* [kotlin-api](https://github.com/aaronriekenberg/api-benchmark/tree/main/kotlin-api) using [http4k](https://www.http4k.org) with [Helidon](https://helidon.io) server using virutal threads, Java 25.
* [node-api](https://github.com/aaronriekenberg/api-benchmark/tree/main/node-api) using builtin `node:http` server.
* [python-api](https://github.com/aaronriekenberg/api-benchmark/tree/main/python-api) using [tornado](https://www.tornadoweb.org/en/stable/) server
# Benchmark tests:
* Use [oha](https://crates.io/crates/oha) to make 1 million HTTP requests
* Using HTTP 1.1 with varying number of connections.
* At API measure response times (p50, p99, p99.9), memory usage, cpu usage, threads created