{"id":19685423,"url":"https://github.com/kislerdm/web-server-benchmark","last_synced_at":"2026-04-07T16:32:33.156Z","repository":{"id":99104599,"uuid":"202943439","full_name":"kislerdm/web-server-benchmark","owner":"kislerdm","description":"http servers benchmarking","archived":false,"fork":false,"pushed_at":"2020-01-28T21:54:06.000Z","size":1776,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-06T13:12:51.718Z","etag":null,"topics":["api","benchmarking","golang","http-server","json","lua","nginx","nodejs","python3","r","wrk"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kislerdm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-18T00:26:39.000Z","updated_at":"2020-01-28T21:54:08.000Z","dependencies_parsed_at":"2023-06-03T20:45:33.546Z","dependency_job_id":null,"html_url":"https://github.com/kislerdm/web-server-benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kislerdm/web-server-benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kislerdm%2Fweb-server-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kislerdm%2Fweb-server-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kislerdm%2Fweb-server-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kislerdm%2Fweb-server-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kislerdm","download_url":"https://codeload.github.com/kislerdm/web-server-benchmark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kislerdm%2Fweb-server-benchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31520529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","benchmarking","golang","http-server","json","lua","nginx","nodejs","python3","r","wrk"],"created_at":"2024-11-11T18:21:50.598Z","updated_at":"2026-04-07T16:32:33.140Z","avatar_url":"https://github.com/kislerdm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Web-servers benchmark\n\nBenchmarking webservers built using different languages and libraries\n\n```yaml\npython:\n  - version: 3.7.4\n  - libs:\n    - aiohttp: 3.5.4\n    - sanic: 19.6.3\n    - tornado: 6.0.3\n    - flask: 1.1.1\n    - falcon: 2.0.0\n    - werkzeug: 0.15.5\n    - gunicorn: 19.9.0\n    - uwsgi: 2.0.18\ngo: \n  - version: 1.12.7\n  - libs: \n    - net/nttp: \nnodejs:\n  - version: 12.9.1\n  - libs: \n    - express: ^4.17.1\nr:\n  - version: 3.6.1\n  - libs:\n    - plumber: 0.4.6\n    - restrserve: 0.2.0\njulia:\n  - version: 1.1.1\n  - libs:\n    - Genie: 0.15.0\nnginx:\n  - version: openresty/1.15.8.1\n```\n\n# Benchmarking tools\n\n\u003ca href=\"https://github.com/wg/wrk/\" target=\"_blank\"\u003ewrk\u003c/a\u003e\n\n## Hardware/Enviroment\n\nTests were performed on a GCP \u003cem\u003eg1-small\u003c/em\u003e machine, configs:\n\n```yaml\ninstance:\n  - type: g1-small\n  - os-image: debian-cloud/debian-9-stretch-v20190813\n  - cpu: Intel(R) Xeon(R) CPU @ 2.00GHz\n  - ram: 1.7G\n```\n\n# Test\n\n## Procedure\n\n1. Spinup a VM\n\n2. Install benchmark tool, configure git and clone this repo:\n\n```bash\nsudo echo 'deb http://ftp.de.debian.org/debian sid main' \u003e\u003e /etc/apt/sources.list\nsudo apt-get update \u0026\u0026 sudo apt-get -y upgrade\nsudo apt-get install -y git build-essential libssl-dev\ngit config --global user.name YOU_GIT_NAME YOU_GIT_FAMILYNAME\ngit config --global user.email YOU_GIT@EMAIL.com\ngit clone https://github.com/wg/wrk.git wrk\ncd wrk\nmake\nsudo cp wrk /usr/local/bin\ncd ../\nrm -rf wrk\ngit clone https://github.com/kislerdm/web-server-benchmark.git web-server-benchmark\ncd web-server-benchmark\n```\n\n3. Install required software, e.g. golang:\n\n```bash\nsudo apt-get install golang\nwget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz\ntar -xvf go1.12.7.linux-amd64.tar.gz,\nsudo mv go /usr/local,\nexport GOROOT=/usr/local/go\nexport GOPATH=$HOME/web-server-benchmark/\necho 'PATH=$GOPATH/bin:$GOROOT/bin:$PATH' \u003e\u003e ~/.profile\n```  \n\n4. Launch the web server for benchmarking, e.g.:\n\n```bash\ncd web-server-benchmark/example/hello-world/go/net-http\ngo build -o run_server api.go\n./run_server \u0026\n```\n\n5. Launch the benchmark\n\n```bash\ncd web-server-benchmark/benchmark\nexport RESULTS_WRK=${PWD}/results/hello-world/gcp/g1-small/raw/go-net-http.txt\nsh wrk_benchmark.sh ${RESULTS_WRK}\n```\n\n6. Commit the benchmarck results to this repo\n   \n```bash\ngit checkout -b results-golang-g-small\ngit add ${RESULTS_WRK}\ngit commit -m 'add wrk result for golang-g-small'\ngit push origin results-golang-g-small\n```\n\n7. Open pull request\n8. Repeat the steps\n\n\n\n## Hello World!\n\n## API json contract\n\nThe API response is expected as:\n\n```json\n{\"data\": \"Hello World!\"}\n```\n\n## Result\n\n![Throughput](benchmark/dataviz/hello-world/gcp/g1-small/d10_t1_c1/fig_c1_t1_d10.jpg)\n\n# Contribution\n\nFeel free to add more benchmark tests and open a pull request","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkislerdm%2Fweb-server-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkislerdm%2Fweb-server-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkislerdm%2Fweb-server-benchmark/lists"}