{"id":35283583,"url":"https://github.com/vutran1710/benchmarker","last_synced_at":"2025-12-30T15:06:57.201Z","repository":{"id":37177778,"uuid":"255509047","full_name":"vutran1710/Benchmarker","owner":"vutran1710","description":"Source code for several backend applications subjected for stress-testing","archived":false,"fork":false,"pushed_at":"2023-06-13T17:29:29.000Z","size":193,"stargazers_count":5,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-13T19:29:04.350Z","etag":null,"topics":["actix","benchmarking","fastapi","python","rust","stress-testing"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vutran1710.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-14T04:22:02.000Z","updated_at":"2023-07-11T17:09:40.000Z","dependencies_parsed_at":"2022-08-17T23:45:36.082Z","dependency_job_id":null,"html_url":"https://github.com/vutran1710/Benchmarker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vutran1710/Benchmarker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vutran1710%2FBenchmarker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vutran1710%2FBenchmarker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vutran1710%2FBenchmarker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vutran1710%2FBenchmarker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vutran1710","download_url":"https://codeload.github.com/vutran1710/Benchmarker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vutran1710%2FBenchmarker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28128483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-30T02:00:05.476Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["actix","benchmarking","fastapi","python","rust","stress-testing"],"created_at":"2025-12-30T15:02:52.413Z","updated_at":"2025-12-30T15:06:57.173Z","avatar_url":"https://github.com/vutran1710.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"* Benchmarking several backend applications\n- *Why?*\n  - I'm mainly concerned with what I have in my development toolbelt - that means Python, JS, Clojure \u0026 Rust.\n  - It is widely known that Rust is the most performant language, but still I want to see how fast it is compared\n    to other frameworks/libraries I've been using daily for enterprise-grade application development.\n  - Learning fun - Thats why!\n\n** Subjects for testing\n\n- [[https://fastapi.tiangolo.com/][FastAPI (python)]]\n- [[https://actix.rs/][Actix-Web (rust)]]\n- [[https://github.com/http-kit/http-kit][HTTPKit with Reitis (clojure)]]\n- [[https://github.com/networknt/light-4j][Light-4J (java)]]\n\n*NOTE*\n\n- source code for HTTPKit app is [[https://github.com/vutran1710/ClojuricWeb][here]]\n- no source code available for Light4j\n\n** Scenario\n\n- Tool: [[https://github.com/codesenberg/bombardier][bombardier]]\n- Concurrent connection: 100\n- Duration: 30s\n- Env: *production* for all test app\n- Testing on a simple API that return sum of 2 numbers, in the following format\n\n*GET* ~\u003chost:port\u003e/\u003clang\u003e/plus?x=1\u0026y=3~\n#+begin_src shell\n# response\n{\n   \"total\": 4\n}\n#+end_src\n\n** Results\n\n- HTTPKit\n#+begin_src  code\n$ bombardier -c 100 -d 30s \"http://localhost:8080/clojure/plus?x=1\u0026y=3\"\nBombarding http://localhost:8080/clojure/plus?x=1\u0026y=3 for 30s using 100 connection(s)\n[====================================================================================] 30s\nStatistics        Avg      Stdev        Max\n  Reqs/sec     30265.79   11146.13   48148.98\n  Latency        3.32ms     3.46ms   319.56ms\n  Throughput:     6.72MB/s\n#+end_src\n\n\n\n- FastAPI\n#+begin_src  code\n$ bombardier -c 100 -d 30s \"http://localhost:5000/python/plus?x=3\u0026y=1\"\nBombarding http://localhost:5000/python/plus?x=3\u0026y=1 for 30s using 100 connection(s)\n[===================================================================================] 30s\nStatistics        Avg      Stdev        Max\n  Reqs/sec     10740.29    1730.15   13932.79\n  Latency        9.32ms     8.50ms   379.46ms\n  Throughput:     2.22MB/s\n#+end_src\n/NOTE: to be frank, I expected more from FastAPI/ :(\n\n\n- Actix-Web\n#+begin_src  code\n$ bombardier -c 100 -d 30s \"http://localhost:8080/rust/plus?x=1\u0026y=3\"\nBombarding http://localhost:8080/rust/plus?x=1\u0026y=3 for 30s using 100 connection(s)\n[===================================================================================] 30s\nStatistics        Avg      Stdev        Max\n  Reqs/sec     81700.23   13506.45   93240.30\n  Latency        1.22ms     3.18ms   293.96ms\n  Throughput:    15.40MB/s\n#+end_src\n\n\n- *Light-4J*\n#+begin_src  code\n$ bombardier -c 100 -d 30s \"http://localhost:8080/light4j/plus?x=3\u0026y=2\"\nBombarding http://localhost:8080/light4j/plus?x=3\u0026y=2 for 30s using 100 connection(s)\n[===================================================================================] 30s\nStatistics        Avg      Stdev        Max\n  Reqs/sec     83641.34   11065.35  101699.66\n  Latency        1.21ms     5.73ms   308.53ms\n  Throughput:    16.11MB/s\n#+end_src\n\n\n** Summary\n\n- *ActixWeb* ~ *Light-4J*\n- *ActixWeb* ~ 2.5x faster than *HTTPKit*\n- *HTTPKit* ~ 3x faster than *FastAPI*\n\n May add some more server-app later...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvutran1710%2Fbenchmarker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvutran1710%2Fbenchmarker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvutran1710%2Fbenchmarker/lists"}