Beego Framework
TL;DR. Sorry.
Revel Framework
* strongly opinionated - you may or may not like what it requires you to do
+ routing, filters, middleware, templates/views
+ nice development environment
Traffic Framework
+ routing, filters, middleware, templates/views
- dependency on regexp-based routing: impaired performance
Gorilla Toolkit
+ fast routing
+ subrouter / tree capability is very good
- ‘context’ shares a common table of state
- ‘session’ uses ‘context’
- strictly compatible to net/http function signatures - sometimes this makes it inflexible
Martini
+ flexible routing: paths, path params, globs, regexes
+ grouping of routes
+ implements http.Handler, so can interwork with equavalent APIs
* dependency injection means flexible handler API
- relatively slow
Good video tutorials http://martini.codegangsta.io/ etc
https://github.com/go-martini/martini
Healthy community extensions https://github.com/martini-contrib
Go-TigerTonic
* primarily intended for RESTful services instead of webapps: no support for views/templates
+ input muxing: possibilities for multi-tenant, multi-hosting etc
+ metrics support
* fixed handler API: sensible, well-designed (but inflexible)
https://github.com/rcrowley/go-tigertonic
Goji
* Like Sinatra, Flask. Unlike Rails, Django.
* Does not use reflection
+ nice context passing
+ like pat with with added context
+ quite similar to Gorilla mux but with better context handling
+ compatible with net/http interfaces. Especially http.Handler can interwork with web.Handler
+ emphasis on composability
+ can do subrouting, but it’s not immediately obvious
+ fast!
Goji.io http://goji.io/
https://github.com/zenazn/goji
Gocraft/Web
+ routing
+ contexts
+ middleware
+ high performance
* handler signatures embed and extend net/http
- wacky Go method expressions
- maybe too dependent on reflection - maybe not simple enough
https://developer.uservoice.com/blog/2013/12/12/why-i-wrote-gocraft-web/
https://github.com/gocraft/web
Further reading
http://codecondo.com/4-minimal-web-frameworks-go-golang/
http://www.ryanday.net/2013/12/17/go-web-framework/
comments powered by Disqus