{"id":18862034,"url":"https://github.com/marco-rosner/lightweight-go-server","last_synced_at":"2026-04-24T16:01:46.310Z","repository":{"id":188798624,"uuid":"679311880","full_name":"marco-rosner/lightweight-go-server","owner":"marco-rosner","description":"A performance comparison to find the lightweight go server between Echo, Gin and Fiber servers","archived":false,"fork":false,"pushed_at":"2024-01-23T16:30:32.000Z","size":37266,"stargazers_count":0,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-30T11:54:18.734Z","etag":null,"topics":["benchmark","echo","echo-framework","fiber","fiber-framework","gin","go","golang","lightweight","server"],"latest_commit_sha":null,"homepage":"","language":"Go","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/marco-rosner.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-08-16T14:58:56.000Z","updated_at":"2023-09-14T10:37:47.000Z","dependencies_parsed_at":"2024-06-20T20:39:30.884Z","dependency_job_id":"be597679-04de-4f19-b4da-fe0d8f5a8c56","html_url":"https://github.com/marco-rosner/lightweight-go-server","commit_stats":null,"previous_names":["marco-rosner/lightweight-go-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marco-rosner/lightweight-go-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marco-rosner%2Flightweight-go-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marco-rosner%2Flightweight-go-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marco-rosner%2Flightweight-go-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marco-rosner%2Flightweight-go-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marco-rosner","download_url":"https://codeload.github.com/marco-rosner/lightweight-go-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marco-rosner%2Flightweight-go-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32230421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: 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":["benchmark","echo","echo-framework","fiber","fiber-framework","gin","go","golang","lightweight","server"],"created_at":"2024-11-08T04:33:04.840Z","updated_at":"2026-04-24T16:01:46.290Z","avatar_url":"https://github.com/marco-rosner.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![genDocsGPT](https://img.shields.io/badge/Docs%20generated%20by-genDocsGPT-blue)](https://github.com/marco-rosner/genDocsGPT)\n\n## Lightweight Go Server\n\nA performance comparison to find the lightweight Go server using Echo, Gin and Fiber servers. We will use MongoDB and Postgres as database and Docker compose as container enviorement. We will use some of the rules from [Rinha de beckend](https://github.com/zanfranceschi/rinha-de-backend-2023-q3) to get the results.\n\n## Run server\n\nYou should go to the server folder that you would like to use, set the env var for the choosen database and run the server. Like:\n\n```sh\ncd echo \u0026\u0026 DB=\"mongo\" MONGODB_URI=\"...\" go run .\n```\n\n## Run with Docker compose\n\nMake sure that you have [docker](https://docs.docker.com/get-docker/) and [docker compose](https://docs.docker.com/compose/install/) installed. Next, you should choose which server and database you would like to run (e.g. docker-compose-\u003cserver\u003e-\u003cdatabase\u003e.yml) and run the command like this:\n\n```sh\ndocker-compose -f docker-compose-echo-postgres.yml up --remove-orphans\n```\n\n## Run benchmark\n\nI am using Gatling to run the benchmark and to install it go to benchmark folder and run the `install-gatling` script. After that, move the `BenchmarkSimulation.scala` file to `deps/gatling/user-files/simulations` and the resources `pessoas-payloads.tsv` and `termos-busca.tsv` to `deps/gatling/user-files/recources`.\n\nGo to the command line and run:\n\n```sh\nsh deps/gatling/bin/gatling.sh\n```\n\n## Last results\n\nUsing Postgres:\n\n![Echo](./benchmark/resources/echo-postgres.png?raw=true \"Echo using Postgres\")\nEcho  \n![Fiber](./benchmark/resources/fiber-postgres.png?raw=true \"Fiber using Postgres\")\nFiber \n![Gin](./benchmark/resources/gin-postgres.png?raw=true \"Gin using Postgres\")\nGin  \n\nUsing MongoDB:\n\n![Echo](./benchmark/resources/echo-mongo.png?raw=true \"Echo using MongoDB\")\nEcho  \n![Fiber](./benchmark/resources/fiber-mongo.png?raw=true \"Fiber using MongoDB\")\nFiber  \n![Gin](./benchmark/resources/gin-mongo.png?raw=true \"Gin using MongoDB\")\nGin  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarco-rosner%2Flightweight-go-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarco-rosner%2Flightweight-go-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarco-rosner%2Flightweight-go-server/lists"}