{"id":15477513,"url":"https://github.com/jtplouffe/rest-api-benchmarks","last_synced_at":"2025-03-28T14:13:41.773Z","repository":{"id":205665369,"uuid":"713111387","full_name":"Jtplouffe/rest-api-benchmarks","owner":"Jtplouffe","description":"Benchmarks of the same REST api written using different languages / orms","archived":false,"fork":false,"pushed_at":"2023-11-18T15:31:58.000Z","size":182,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-19T03:04:15.319Z","etag":null,"topics":["benchmark","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jtplouffe.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-01T21:28:03.000Z","updated_at":"2023-11-10T20:50:37.000Z","dependencies_parsed_at":"2024-10-02T04:01:58.441Z","dependency_job_id":"8963927e-4872-4b85-8edc-e4f3636a283f","html_url":"https://github.com/Jtplouffe/rest-api-benchmarks","commit_stats":null,"previous_names":["jtplouffe/rest-api-benchmarks"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jtplouffe%2Frest-api-benchmarks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jtplouffe%2Frest-api-benchmarks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jtplouffe%2Frest-api-benchmarks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jtplouffe%2Frest-api-benchmarks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jtplouffe","download_url":"https://codeload.github.com/Jtplouffe/rest-api-benchmarks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246042013,"owners_count":20714147,"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":["benchmark","rest-api"],"created_at":"2024-10-02T04:01:04.796Z","updated_at":"2025-03-28T14:13:41.745Z","avatar_url":"https://github.com/Jtplouffe.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rest-api-benchmarks\n\nThis repository contains a basic implementation (described below) of a REST api using different stacks.\nThe goal is to mesearue the performance difference. They are no crazy optimization tricks being used, just plain old\napi code.\n\n## REST api\n\nThe api contains a single route, `GET /user`.\nThis route may take a `include` query param, with possible values being `contacts` and `notes`. The query param can be\nan array, meaning that we may include both contacts and notes.\n\nAs for the database, 3 table exists. `users`, `user_contacts`, and `user_notes`.\n\nWhen querying the route, all users are returned.\n\n## Benchmark\n\nFor the benchmark, every implementation is allocated the same resource, being 1 cpu and 128M memory. This limit is\napplied via docker.\n\nWhen runnig the benchmarks, the database is running on the same machine as the api being benchmarked.\n\nThe benchmarks are run with [plow](https://github.com/six-ddc/plow), during 60 seconds with 10 connections.\n\nThe results should be taken with a grain of salt, as this benchmark is pretty heavy on the ORM, but\nit still gives a good idea of the performance of the language / ORM.\n\n### Environment\n\nThe benchmarks are run one at a time, with the same data.\nThey are limited to 1 cpu (Ryzen 7 7700X) and 128M memory.\n\n## Implementations\n\n- [nodejs-nestjs-sequelize](./nodejs-nestjs-sequelize/)\n- [go-fiber-bun](./go-fiber-bun/)\n- [rust-axum-prisma](./rust-axum-prisma/)\n- [elixir-phoenix-ecto](./elixir_phoenix_ecto/)\n- [dart-alfred-drift](./dart-alfred-drift/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjtplouffe%2Frest-api-benchmarks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjtplouffe%2Frest-api-benchmarks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjtplouffe%2Frest-api-benchmarks/lists"}