-
-
Save xeoncross/fe8910ec0eb236bc077844976832e6f0 to your computer and use it in GitHub Desktop.
Some projects have background stories, dramas, stigmas, and gotchas you might miss. All can effect the stable future of your new little app. The following is my own personal list as I explore projects listed on https://awesome-go.com/#web-frameworks
- https://github.com/smallnest/go-web-framework-benchmark#basic-test
- https://github.com/julienschmidt/go-http-routing-benchmark
- https://stackoverflow.com/questions/41627931/in-golang-packages-why-is-fasthttp-faster-than-net-http
- No support for websockets or HTTP/2 (see todo list)
A tiny library for middlewares that is much like https://medium.com/@matryer/writing-middleware-in-golang-and-how-go-makes-it-so-much-fun-4375c1246e81
Negroni is like Alice with some logging and recovery middlewares added on. It is a simpler rewrite of martini (no longer maintained) without the "magic".
muxchain seems to be a bloated version of Alice/Negroni that chains mux instead of http.Handler for non-obvious reasons (to me). Maybe support for path checking in middlewares?
- http://www.florinpatan.ro/2016/10/why-you-should-not-use-iris-for-your-go.html
- Awesome-Go banned the project
- reddit isn't sure either
- gin may not actually be slower
- Author's own benchmarks?
- Community fork
There seem to be two thoughts about input validation, one using struct tags and one using regular written rules. Both could be used with middlewares to return a standard JSON API response format like what the google styleguide recomends.
A huge number of app HTTP endpoints (especially REST endpoints) require input validation. Only a few golang routers/frameworks/libraries provide support for input validation as a first-class citizen.
Framework Agnostic
Framework Lock-in
Partial/WIP support:
Generator: