{"id":17158659,"url":"https://github.com/siruscodes/backend_benchmark","last_synced_at":"2025-04-13T13:40:41.486Z","repository":{"id":63938016,"uuid":"559527432","full_name":"SirusCodes/backend_benchmark","owner":"SirusCodes","description":"Backend benchmarking of Python, Node, and Dart frameworks","archived":false,"fork":false,"pushed_at":"2024-01-16T06:31:06.000Z","size":1794,"stargazers_count":12,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-27T04:41:28.681Z","etag":null,"topics":["backend","benchmark","dart","express","flask"],"latest_commit_sha":null,"homepage":"","language":"Dart","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/SirusCodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-10-30T11:57:37.000Z","updated_at":"2024-08-31T17:07:16.000Z","dependencies_parsed_at":"2024-01-16T08:45:41.635Z","dependency_job_id":"35daa636-7e3a-4d12-8132-f0a70c976e8e","html_url":"https://github.com/SirusCodes/backend_benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SirusCodes%2Fbackend_benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SirusCodes%2Fbackend_benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SirusCodes%2Fbackend_benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SirusCodes%2Fbackend_benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SirusCodes","download_url":"https://codeload.github.com/SirusCodes/backend_benchmark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248724107,"owners_count":21151555,"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","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":["backend","benchmark","dart","express","flask"],"created_at":"2024-10-14T22:12:14.859Z","updated_at":"2025-04-13T13:40:41.453Z","avatar_url":"https://github.com/SirusCodes.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backend Benchmark\n\nCurrently, it benchmarks backends in two ways.\n\n1. Custom script to target specific cases\n   1. Sequential requests (GET/POST)\n   2. Multiple parallel requests (GET/POST)\n   3. File upload (Multipart Requests)\n   4. JSON parsing\n2. Load testing by [k6]\n\nBelow are the results for both\n\n## Specific stress test\n\n|                                                                 |                                                                                    |\n| --------------------------------------------------------------- | ---------------------------------------------------------------------------------- |\n| ![Send one request at a time](static/performance/sync.jpeg)     | ![Send multiple GET request at a time](static/performance/async.jpeg)              |\n| Send one request at a time                                      | Send multiple request at a time                                                    |\n| ![Send files with multipart](static/performance/multipart.jpeg) | ![Send 1.04MB of JSON to server and let it parse it](static/performance/json.jpeg) |\n| Send files with multipart                                       | Send 1.04MB of JSON to server and let it parse it                                  |\n\n## Load testing\n\nYou can have a look at the [config file](https://github.com/SirusCodes/backend_benchmark/blob/main/scripts/k6_load_testing.js) on how it works.\n\nA **TL;DR** would be it simulates the user increasing from 0 to 50, staying there for a minute then increasing to 100 and so on till it reaches 200 in step 50 and then decreases in step 100 till it reaches 0.\n\nIn the graphs below the _**Red line**_, represents the number of **virtual/simulated users** and the _**Blue line**_, represents the **Average round trip time (ms)** on the **Y-axes** and the **time for test** on **X-axis**.\n\n### Conduit (Dart)\n\n![Conduit (Dart)](static/load_testing/dart_conduit.jpeg)\n\n### Dia (Dart)\n\n![Dia (Dart)](static/load_testing/dart_dia.jpeg)\n\n### dart_frog (Dart)\n\n![dart_frog (Dart)](static/load_testing/dart_frog_backend.jpeg)\n\n### minerva (Dart)\n\n![minerva (Dart)](static/load_testing/dart_minerva.jpeg)\n\n### shelf (Dart)\n\n![shelf (Dart)](static/load_testing/dart_shelf.jpeg)\n\n### spry (Dart)\n\n![spry (Dart)](static/load_testing/dart_spry.jpeg)\n\n### Fiber (Go)\n\n![Fiber (Go)](static/load_testing/go_fiber.jpeg)\n\n### expressjs (Node)\n\n![expressjs (Node)](static/load_testing/node_express.jpeg)\n\n### Flask (Python)\n\n![Flask (Python)](static/load_testing/py_flask.jpeg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiruscodes%2Fbackend_benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiruscodes%2Fbackend_benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiruscodes%2Fbackend_benchmark/lists"}