This project benchmarks multiple backend stacks, comparing their performance in both JVM mode and native compilation (where available), along with two natively compiled languages: Go and Rust.
To see the results
Evaluate and compare the following performance aspects:
-
⚙️ Build & Packaging
-
🚀 Startup & Runtime Performance
-
🌐 API Responsiveness & Stability
-
👥 Load Simulation
Stack | Type | Technology |
---|---|---|
Spring Boot | JVM | Java 21 + Spring Boot |
Spring Native | Native (GraalVM) | Java 21 + Spring AOT |
Quarkus | JVM | Java 21 + Quarkus |
Quarkus Native | Native (GraalVM) | Java 21 + Quarkus |
Go | Native | Go 1.20 |
Rust | Native | Rust (actix-web, etc.) |
Each framework has its own Dockerfile and build setup. All benchmarks run in isolated containers using Docker Compose.
cd restApi<Framework>
./<Framework>.sh
cd restApi<Framework>
.\<Framework>.ps1
All metrics are logged and can be exported via k6
output integrations (InfluxDB, JSON, etc.).
We run the tests 10 times for each Framework, compute their average and then compare it.
For an overview of the application and the Docker set up : Architecture
For an overview of the k6 testing and the monitoring : Testing
- Native builds use
GraalVM Native Image
.
- Docker
- Docker compose
Feel free to open issues or PRs if you'd like to expand the test suite (more endpoints, other languages, etc.).