{"id":15355446,"url":"https://github.com/bmf-san/go-router-benchmark","last_synced_at":"2025-04-15T06:29:03.364Z","repository":{"id":64558211,"uuid":"562435101","full_name":"bmf-san/go-router-benchmark","owner":"bmf-san","description":"Benchmark tests for http router implemented in golang.","archived":false,"fork":false,"pushed_at":"2024-07-01T01:25:14.000Z","size":7740,"stargazers_count":8,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T17:05:47.505Z","etag":null,"topics":["awesome-go","benchmark","go","golang","http-router","router"],"latest_commit_sha":null,"homepage":"https://dev.to/bmf_san/implemented-a-bench-marker-to-compare-gos-http-router-146p","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/bmf-san.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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},"funding":{"github":["bmf-san"]}},"created_at":"2022-11-06T11:01:38.000Z","updated_at":"2025-02-02T14:52:59.000Z","dependencies_parsed_at":"2024-04-22T15:44:10.960Z","dependency_job_id":"ab33ee42-15a7-4f57-b35d-54da39c58892","html_url":"https://github.com/bmf-san/go-router-benchmark","commit_stats":{"total_commits":33,"total_committers":3,"mean_commits":11.0,"dds":"0.21212121212121215","last_synced_commit":"5fb4a7f097568be0ee90e288d7f3b897d8dd7d9f"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmf-san%2Fgo-router-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmf-san%2Fgo-router-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmf-san%2Fgo-router-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmf-san%2Fgo-router-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmf-san","download_url":"https://codeload.github.com/bmf-san/go-router-benchmark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249020188,"owners_count":21199507,"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":["awesome-go","benchmark","go","golang","http-router","router"],"created_at":"2024-10-01T12:24:25.807Z","updated_at":"2025-04-15T06:29:03.347Z","avatar_url":"https://github.com/bmf-san.png","language":"Go","funding_links":["https://github.com/sponsors/bmf-san"],"categories":[],"sub_categories":[],"readme":"# go-router-benchmark\nCompare the performance of routers built with golang.\n\n# Table of contents\n- [go-router-benchmark](#go-router-benchmark)\n- [Table of contents](#table-of-contents)\n- [Listed routers](#listed-routers)\n- [Motivation](#motivation)\n- [Benchmark test](#benchmark-test)\n\t- [Static route](#static-route)\n\t- [Path parameter route](#path-parameter-route)\n- [Run benchmark tests](#run-benchmark-tests)\n- [Results](#results)\n\t- [Static routes](#static-routes)\n\t\t- [time](#time)\n\t\t- [nsop](#nsop)\n\t\t- [bop](#bop)\n\t\t- [allocs](#allocs)\n\t- [Pathparams routes](#pathparams-routes)\n\t\t- [time](#time-1)\n\t\t- [nsop](#nsop-1)\n\t\t- [bop](#bop-1)\n\t\t- [allocs](#allocs-1)\n- [Conclusion](#conclusion)\n- [Contribution](#contribution)\n\t- [Want to add an HTTP Router ?](#want-to-add-an-http-router-)\n- [Contribution](#contribution-1)\n- [Sponsor](#sponsor)\n- [License](#license)\n\t- [Author](#author)\n\n# Listed routers\n- [bmf-san/goblin](https://github.com/bmf-san/goblin)\n- [julienschmidt/httprouter](https://github.com/julienschmidt/httprouter)\n- [go-chi/chi](https://github.com/go-chi/chi)\n- [gin-gonic/gin](https://github.com/gin-gonic/gin)\n- [uptrace/bunrouter](https://github.com/uptrace/bunrouter)\n- [dimfeld/httptreemux](https://github.com/dimfeld/httptreemux)\n- [beego/mux](https://github.com/beego/mux)\n- [gorilla/mux](https://github.com/gorilla/mux)\n- [nissy/bon](https://github.com/nissy/bon)\n- [naoina/denco](https://github.com/naoina/denco)\n- [labstack/echo](https://github.com/labstack/echo/v4)\n- [gocraft/web](https://github.com/gocraft/web)\n- [vardius/gorouter](https://github.com/vardius/gorouter)\n- [go-ozzo/ozzo-routing](https://github.com/go-ozzo/ozzo-routing)\n- [lkeix/techbook13-sample](https://github.com/lkeix/techbook13-sample)\n\nSince [net/http#ServeMux](https://pkg.go.dev/net/http#ServeMux) does not have the capability to support path param route, only the static route test case is comparable.\n\n# Motivation\nI have implemented a router called [bmf-san/goblin](https://github.com/bmf-san/goblin), and I created this repository to compare it with other routers and get hints on how to improve [bmf-san/goblin](https://github.com/bmf-san/goblin).\n\nAnother reason is that [julienschmidt/go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) seems to have stopped being maintained, so I wanted to have a benchmarker for the router that I could manage myself.\n\n# Benchmark test\nThis benchmark tests is not a perfect comparison of HTTP Router performance.\nThe reasons are as follows\n\n- Not practical to cover all test cases because each HTTP Router has different specifications\n- Performance may be unfairly evaluated depending on the routing test cases defined, since each HTTP Router has its own strengths and weaknesses depending on its data structures and algorithms.\n\nAlthough the benchmark test is based on a specific case, it is possible to see some trends in performance differences.\n\nPerformance measurements will be made on the routing process of the HTTP Router.\nMore specifically, we will test the `ServeHTTP` function of [http#Handler](https://pkg.go.dev/net/http#Handler).\n\nWe do not measure the performance of the process that defines the routing of the HTTP Router.\nThe process of defining routing is the process of registering data for the routing process.\nFor example, the code for net/http is as follows.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"net/http\" )\n)\n\nfunc handler(w http.ResponseWriter, r *http.Request) {\n\tfmt.Fprint(w, \"Hello World\")\n}\n\nfunc main() {\n\tmux := http.NewServeMux()\n\tmux.HandleFunc(\"/\", handler) // here\n\tListenAndServe(\":8080\", mux)\n}\n```\n\nWe believe that the part that handles routing is called more often than the part that defines routing, and thus accounts for the majority of the HTTP Router's performance.\n\n## Static route\nA static route is a route without variable parameters such as `/foo/bar`.\n\nStatic route measures performance by benchmarking routing tests with the following three input values.\n\n- `/`\n- `/foo`\n- `/foo/bar/baz/qux/quux`\n- `/foo/bar/baz/qux/quux/corge/grault/garply/waldo/fred`\n\n## Path parameter route\nA path parameter route is a route with variable parameters such as `/foo/:bar`.\n\nIn path parameter route, we perform benchmark routing tests with the following three input values to measure the performance.\n\n- `/foo/:bar`\n- `/foo/:bar/:baz/:qux/:quux/:corge`\n- `/foo/:bar/:baz/:qux/:quux/:corge/:grault/:garply/:waldo/:fred/:plugh`\n\nSince different HTTP Routers have different ways of expressing parameters, there are several cases where another symbol is used in addition to `:`.\n\n# Run benchmark tests\n|         Command          |                                                          Description                                                          |\n| :----------------------- | :---------------------------------------------------------------------------------------------------------------------------- |\n| test-benchmark           | Run benchmark tests.                                                                                                          |\n| test-benchmark-static    | Run benchmark tests only static.                                                                                              |\n| test-benchmark-pathparam | Run benchmark tests only pathparam.                                                                                           |\n| test-benchmark-by-regexp | Run benchmark tests using regexp. ex. make test-benchmark-by-regexp EXP=Goblin, make test-benchmark-by-name EXP=StaticRoutes1 |\n\n# Results\nBenchmark results are published in a spreadsheet.\n\n[\u003cPublic\u003ego-router-benchmark](https://docs.google.com/spreadsheets/d/1DrDNGJXfquw_PED3-eMqWqh7qbCTVBWZtqaKPXtngxg/edit#gid=1913830192)\n\nBenchmark system\n- go version: go1.22\n- goos: darwin\n- goarch: amd64\n- pkg: github.com/go-router-benchmark\n- cpu: VirtualApple @ 2.50GHz\n\n## Static routes\n### time\n| time              | static-routes-root | static-routes-1 | static-routes-5 | static-routes-10 |\n| ----------------- | ------------------ | --------------- | --------------- | ---------------- |\n| servemux          | 27831720           | 19891950        | 4838466         | 2508039          |\n| goblin            | 78151288           | 39773182        | 10053289        | 4709226          |\n| httprouter        | 144303050          | 134171820       | 129710535       | 100000000        |\n| chi               | 7614604            | 7730403         | 7558288         | 6086882          |\n| gin               | 44050909           | 43401141        | 43176404        | 41443738         |\n| bunrouter         | 100000000          | 79699796        | 76368669        | 71506602         |\n| httptreemux       | 8800170            | 8486769         | 6520071         | 4769065          |\n| beegomux          | 31233393           | 26120126        | 8418674         | 4674050          |\n| gorillamux        | 3210363            | 3138418         | 2914868         | 2262861          |\n| bon               | 100000000          | 100000000       | 100000000       | 97284812         |\n| denco             | 134409880          | 134490919       | 133387552       | 131848746        |\n| echo              | 65374460           | 60613204        | 39926578        | 23414919         |\n| gocraftweb        | 1686422            | 1644936         | 1460192         | 1208860          |\n| gorouter          | 89735841           | 64869247        | 31833826        | 18472964         |\n| ozzorouting       | 47574130           | 45542164        | 35507553        | 27385978         |\n| techbook13-sample | 10733499           | 7743865         | 3166988         | 1523804          |\n\n![time.png](/images/static-routes/time.png)\n\n[Graph - time](https://docs.google.com/spreadsheets/d/e/2PACX-1vRiWBjJim4v_XyoN45s4VVQXD-PIBHKjyVfOv5OX37376SZ9GvL5bmqQegLl-5arBpD-3hhTKTEgkIj/pubchart?oid=800028423\u0026format=interactive)\n\n### nsop\n| nsop              | static-routes-root | static-routes-1 | static-routes-5 | static-routes-10 |\n| ----------------- | ------------------ | --------------- | --------------- | ---------------- |\n| servemux          | 43.09              | 60.18           | 226.1           | 457.7            |\n| goblin            | 15.34              | 30.23           | 119.7           | 265.5            |\n| httprouter        | 8.328              | 8.931           | 9.291           | 10.58            |\n| chi               | 160                | 159.4           | 159.5           | 183.6            |\n| gin               | 27.66              | 27.68           | 27.81           | 29.56            |\n| bunrouter         | 10.63              | 15.24           | 15.72           | 18.61            |\n| httptreemux       | 137.1              | 140.7           | 183.2           | 270.6            |\n| beegomux          | 38.22              | 46.08           | 143.6           | 251.2            |\n| gorillamux        | 374.9              | 380.8           | 411.7           | 550.8            |\n| bon               | 10.68              | 10.46           | 10.7            | 10.93            |\n| denco             | 9.027              | 8.986           | 8.962           | 9.076            |\n| echo              | 18.54              | 19.73           | 30.14           | 50.64            |\n| gocraftweb        | 709.5              | 718             | 826             | 1024             |\n| gorouter          | 13.7               | 18.46           | 37.49           | 71.49            |\n| ozzorouting       | 25.4               | 26.31           | 33.01           | 43.9             |\n| techbook13-sample | 115.3              | 154.8           | 379.8           | 779.6            |\n\n![nsop.png](/images/static-routes/nsop.png)\n\n[Graph - nsop](https://docs.google.com/spreadsheets/d/e/2PACX-1vRiWBjJim4v_XyoN45s4VVQXD-PIBHKjyVfOv5OX37376SZ9GvL5bmqQegLl-5arBpD-3hhTKTEgkIj/pubchart?oid=1691114342\u0026format=interactive)\n\n### bop\n| bop               | static-routes-root | static-routes-1 | static-routes-5 | static-routes-10 |\n| ----------------- | ------------------ | --------------- | --------------- | ---------------- |\n| servemux          | 0                  | 0               | 0               | 0                |\n| goblin            | 0                  | 0               | 0               | 0                |\n| httprouter        | 0                  | 0               | 0               | 0                |\n| chi               | 336                | 336             | 336             | 336              |\n| gin               | 0                  | 0               | 0               | 0                |\n| bunrouter         | 0                  | 0               | 0               | 0                |\n| httptreemux       | 360                | 360             | 360             | 360              |\n| beegomux          | 32                 | 32              | 32              | 32               |\n| gorillamux        | 784                | 784             | 784             | 784              |\n| bon               | 0                  | 0               | 0               | 0                |\n| denco             | 0                  | 0               | 0               | 0                |\n| echo              | 0                  | 0               | 0               | 0                |\n| gocraftweb        | 288                | 288             | 352             | 432              |\n| gorouter          | 0                  | 0               | 0               | 0                |\n| ozzorouting       | 0                  | 0               | 0               | 0                |\n| techbook13-sample | 336                | 340             | 464             | 904              |\n\n![bop.png](/images/static-routes/bop.png)\n\n[Graph - bop](https://docs.google.com/spreadsheets/d/e/2PACX-1vRiWBjJim4v_XyoN45s4VVQXD-PIBHKjyVfOv5OX37376SZ9GvL5bmqQegLl-5arBpD-3hhTKTEgkIj/pubchart?oid=675738282\u0026format=interactive)\n\n### allocs\n| allocs            | static-routes-root | static-routes-1 | static-routes-5 | static-routes-10 |\n| ----------------- | ------------------ | --------------- | --------------- | ---------------- |\n| servemux          | 0                  | 0               | 0               | 0                |\n| goblin            | 0                  | 0               | 0               | 0                |\n| httprouter        | 0                  | 0               | 0               | 0                |\n| chi               | 2                  | 2               | 2               | 2                |\n| gin               | 0                  | 0               | 0               | 0                |\n| bunrouter         | 0                  | 0               | 0               | 0                |\n| httptreemux       | 3                  | 3               | 3               | 3                |\n| beegomux          | 1                  | 1               | 1               | 1                |\n| gorillamux        | 7                  | 7               | 7               | 7                |\n| bon               | 0                  | 0               | 0               | 0                |\n| denco             | 0                  | 0               | 0               | 0                |\n| echo              | 0                  | 0               | 0               | 0                |\n| gocraftweb        | 6                  | 6               | 6               | 6                |\n| gorouter          | 0                  | 0               | 0               | 0                |\n| ozzorouting       | 0                  | 0               | 0               | 0                |\n| techbook13-sample | 2                  | 3               | 11              | 21               |\n\n![allocs.png](/images/static-routes/allocs.png)\n\n[Graph - allocs](https://docs.google.com/spreadsheets/d/e/2PACX-1vRiWBjJim4v_XyoN45s4VVQXD-PIBHKjyVfOv5OX37376SZ9GvL5bmqQegLl-5arBpD-3hhTKTEgkIj/pubchart?oid=1054975173\u0026format=interactive)\n\n## Pathparams routes\n### time\n| time              | pathparam-routes-1 | pathparam-routes-5 | pathparam-routes-10 |\n| ----------------- | ------------------ | ------------------ | ------------------- |\n| servemux          | 9879615            | 3095632            | 1716556             |\n| goblin            | 5543427            | 3288781            | 2148358             |\n| httprouter        | 33200109           | 12520192           | 7242321             |\n| chi               | 4124253            | 2560972            | 1262286             |\n| gin               | 35934104           | 18361316           | 10710009            |\n| bunrouter         | 59392094           | 10587997           | 5214822             |\n| httptreemux       | 3764035            | 2022978            | 1000000             |\n| beegomux          | 3953678            | 2586265            | 1457932             |\n| gorillamux        | 2004242            | 961486             | 521152              |\n| bon               | 7565557            | 5322081            | 4093870             |\n| denco             | 24679846           | 9708924            | 6409720             |\n| echo              | 46360610           | 15237498           | 8387311             |\n| gocraftweb        | 1287634            | 960009             | 717404              |\n| gorouter          | 6209989            | 4295180            | 3322506             |\n| ozzorouting       | 35132318           | 15635671           | 9333058             |\n| techbook13-sample | 3436351            | 1000000            | 647994              |\n\n![time.png](/images/pathparam-routes/time.png)\n\n[Graph - time](https://docs.google.com/spreadsheets/d/e/2PACX-1vRiWBjJim4v_XyoN45s4VVQXD-PIBHKjyVfOv5OX37376SZ9GvL5bmqQegLl-5arBpD-3hhTKTEgkIj/pubchart?oid=1039813866\u0026format=interactive)\n\n### nsop\n| nsop              | pathparam-routes-1 | pathparam-routes-5 | pathparam-routes-10 |\n| ----------------- | ------------------ | ------------------ | ------------------- |\n| servemux          | 120.8              | 383.8              | 697.1               |\n| goblin            | 217.7              | 367.2              | 558                 |\n| httprouter        | 36.3               | 96.27              | 155.5               |\n| chi               | 304.8              | 468.1              | 961.9               |\n| gin               | 33.44              | 64.27              | 104.1               |\n| bunrouter         | 20.3               | 115.1              | 229.9               |\n| httptreemux       | 316.6              | 599                | 1080                |\n| beegomux          | 316.7              | 466.9              | 826                 |\n| gorillamux        | 609.5              | 1215               | 2327                |\n| bon               | 159.2              | 226.9              | 293.9               |\n| denco             | 49.59              | 123.2              | 187                 |\n| echo              | 26.17              | 78.84              | 143.4               |\n| gocraftweb        | 936.6              | 1228               | 1654                |\n| gorouter          | 196.1              | 277.9              | 364.7               |\n| ozzorouting       | 33.99              | 77.03              | 129                 |\n| techbook13-sample | 355.3              | 1045               | 1813                |\n\n![nsop.png](/images/pathparam-routes/nsop.png)\n\n[Graph - nsop](https://docs.google.com/spreadsheets/d/e/2PACX-1vRiWBjJim4v_XyoN45s4VVQXD-PIBHKjyVfOv5OX37376SZ9GvL5bmqQegLl-5arBpD-3hhTKTEgkIj/pubchart?oid=1534246873\u0026format=interactive)\n\n### bop\n| bop               | pathparam-routes-1 | pathparam-routes-5 | pathparam-routes-10 |\n| ----------------- | ------------------ | ------------------ | ------------------- |\n| servemux          | 16                 | 240                | 496                 |\n| goblin            | 360                | 360                | 360                 |\n| httprouter        | 32                 | 160                | 320                 |\n| chi               | 672                | 672                | 1254                |\n| gin               | 0                  | 0                  | 0                   |\n| bunrouter         | 0                  | 0                  | 0                   |\n| httptreemux       | 712                | 936                | 1774                |\n| beegomux          | 704                | 704                | 1286                |\n| gorillamux        | 1088               | 1152               | 1815                |\n| bon               | 336                | 336                | 336                 |\n| denco             | 32                 | 160                | 320                 |\n| echo              | 0                  | 0                  | 0                   |\n| gocraftweb        | 656                | 944                | 1862                |\n| gorouter          | 392                | 520                | 680                 |\n| ozzorouting       | 0                  | 0                  | 0                   |\n| techbook13-sample | 464                | 1000               | 1824                |\n\n![bop.png](/images/pathparam-routes/bop.png)\n\n[Graph - bop](https://docs.google.com/spreadsheets/d/e/2PACX-1vRiWBjJim4v_XyoN45s4VVQXD-PIBHKjyVfOv5OX37376SZ9GvL5bmqQegLl-5arBpD-3hhTKTEgkIj/pubchart?oid=73824357\u0026format=interactive)\n\n### allocs\n| allocs            | pathparam-routes-1 | pathparam-routes-5 | pathparam-routes-10 |\n| ----------------- | ------------------ | ------------------ | ------------------- |\n| servemux          | 1                  | 4                  | 5                   |\n| goblin            | 3                  | 3                  | 3                   |\n| httprouter        | 1                  | 1                  | 1                   |\n| chi               | 4                  | 4                  | 5                   |\n| gin               | 0                  | 0                  | 0                   |\n| bunrouter         | 0                  | 0                  | 0                   |\n| httptreemux       | 6                  | 9                  | 11                  |\n| beegomux          | 5                  | 5                  | 6                   |\n| gorillamux        | 8                  | 8                  | 9                   |\n| bon               | 2                  | 2                  | 2                   |\n| denco             | 1                  | 1                  | 1                   |\n| echo              | 0                  | 0                  | 0                   |\n| gocraftweb        | 9                  | 12                 | 14                  |\n| gorouter          | 4                  | 4                  | 4                   |\n| ozzorouting       | 0                  | 0                  | 0                   |\n| techbook13-sample | 10                 | 33                 | 59                  |\n\n![allocs.png](/images/pathparam-routes/allocs.png)\n\n[Graph - allocs](https://docs.google.com/spreadsheets/d/e/2PACX-1vRiWBjJim4v_XyoN45s4VVQXD-PIBHKjyVfOv5OX37376SZ9GvL5bmqQegLl-5arBpD-3hhTKTEgkIj/pubchart?oid=344550080\u0026format=interactive)\n\n# Conclusion\nIt can be seen that the HTTP Router with better performance has less performance degradation in each test case.\nThis is a clear trend that shows that the implementation is optimized.\n\nThe better performing HTTP Route seems to employ a more sophisticated tree structure.\nEcho,gin,httprouter,bon,chi seem to adopt Radix tree (Patricia trie) and denco double array.\n\nAs for my implementation of goblin, it is a proprietary extension of the trie tree, which is not very well optimized, and I could clearly see that its performance is lower than the other HTTP Routers. (I will try my best to improve it...)\n\nI don't think it is reasonable to assume that HTTP Router should not be adopted because of its seemingly poor performance in this benchmark result.\n\nSome HTTP Routers are considered to be highly functional and easy to use, even if their performance is a little lower.\n\nSome of the HTTP Routers listed here are no longer under development.\n\nSince goblin has no plans to stop development for the time being, please try it if you like!\n\n# Contribution\nWe are always accepting issues, pull requests, and other requests and questions.\n\nWe look forward to your contribution！\n\n## Want to add an HTTP Router ?\nIf you have an HTTP Router or test case you would like to add, please send us an Issue or Pull Request.\n\nIf you are submitting an Issue, please tell us about the HTTP Router you would like to add.\n\nIf you are submitting a PullRequest, please add a test case.\nReporting of benchmark runs is done by the owner, so you do not need to update the run results.\n\nIf you have any questions, you can ask them in Issue.\n\n# Contribution\nIssues and Pull Requests are always welcome.\n\nWe would be happy to receive your contributions.\n\nPlease review the following documents before making a contribution.\n\n[CODE_OF_CONDUCT](https://github.com/bmf-san/go-router-benchmark/blob/master/.github/CODE_OF_CONDUCT.md)\n[CONTRIBUTING](https://github.com/bmf-san/go-router-benchmark/blob/master/.github/CONTRIBUTING.md)\n\n# Sponsor\nIf you like it, I would be happy to have you sponsor it!\n\n[GitHub Sponsors - bmf-san](https://github.com/sponsors/bmf-san)\n\nOr I would be happy to get a STAR.\n\nIt motivates me to keep up with ongoing maintenance :D\n\n# License\nBased on the MIT License.\n\n[LICENSE](https://github.com/bmf-san/goblin/blob/master/LICENSE)\n\n## Author\n[bmf-san](https://github.com/bmf-san)\n\n- Email\n  - bmf.infomation@gmail.com\n- Blog\n  - [bmf-tech.com](http://bmf-tech.com)\n- Twitter\n  - [bmf-san](https://twitter.com/bmf-san)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmf-san%2Fgo-router-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmf-san%2Fgo-router-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmf-san%2Fgo-router-benchmark/lists"}