Home

Awesome

GotRo

GotRo is abbreviation of Gotong Royong. the meaning in Indonesia: "do it together", "mutual cooperation". This Framework is rewrite of gokil, that previously use httprouter but rewritten using fasthttprouter (W framework, deprecated), latest framework W2 are now using fiber.

Versioning

versioning using this format 1.(M+(YEAR-2021)*12)DD.HMM, so for example v1.213.1549 means it was released at 2021-02-13 15:49

Design Goal

Status

Usable 3rd party database adapter:

Other than above, you must use officially provided database adapter from respective vendors. For docker compose example. you can see local-docker-db

Benchmark

Benchmarked using hey -c 255 -n 255000 http://localhost:3001 on i7-4720HQ gotro almost 2x faster than gokil (12K rps vs 23K rps, thanks to fasthttp), this already includes session loading and template rendering (real-life use case, but with template auto-reloading which should be faster on production mode, since unlike in development mode it doesn't stat disk at all).

For newer framework W2 can achieve 20K rps on Ryzen3 3100 without session loading and template rendering (only renders JSON), but with debug logging turned on (development mode), 33K to 144K rps on newer 32-core 128GB RAM NVMe server, see BENCHMARK.md for detailed result.

Usage

go get -u -v github.com/kokizzu/gotro or for Go 1.16+: go mod download github.com/kokizzu/gotro or just import one of the sub-library and run go mod tidy

Contributors

TODO / Bounty