This repository contains a HTTP client implementation for comparing the client's performance with implementations in other programming languages such as D, Rust and Go.
- D, Rust, Go, Python, R
- Hyperfine (for benchmarking)
Results in a table
To run the benchmarks:
chmod +x bench.sh
./bench.shThe result will be saved to benchmarks.md and benchmarks.json.
Use the JSON data along with the scripts from the hyperfine examples to plot data using matplotlib. For example:
git clone --depth 1 https://github.com/sharkdp/hyperfine
python hyperfine/scripts/plot_whisker.py benchmarks.jsonAdd:
[x] httpx Python
[x] httr(2) R
The results are coming from a GitHub runner (ubuntu-latest) and automated with this workflow.
To see the output for the latest run, check out the output branch in this repository.
zig-http-benchmarks - initial implementation mostly related to Zig language, which was adopted and adjusted for better time measurements (github repo)
http-clients-benchmark - benchmark ideas for HTTP clients testing in Ruby (gitlab repo)
rust clients test - some details about HTTP clients and CURL problems (Medium article, 2020)
python clients test - some python clients testing including RPS, handshake, throughput (github repo)
