

Ask HN: What's the golang web framework with the most momentum? - carbocation


======
rartichoke
None of them are actually too good IMO. They are either super opinionated or
don't remove the pain points in common web dev.

Still waiting for something like Express in Go but I doubt it'll happen. I
don't think anyone is serious about web development with Go based on what I
see in the IRC channel and newsgroup on a daily basis, the lack of libs
doesn't help either.

Edit: I want to add that I attempted to step up and learn Go as I made a web
lib similar to Express. I had a little success but most of the time the people
on the IRC channel weren't very helpful.

Most people didn't understand the need for such a lib (something like
Express), it's just a bunch of people parroting "it's so easy in Go, you don't
need a lib!" but these are people who never built a single web app in their
entire life or going into attack mode saying anyone who needs a super light
weight lib is some type of scrub developer.

It made me instantly turn my shoulder to the Go community and it'll take some
pretty good libs to make me change my mind because in the end getting stuff
done is the only thing that matters and Go + reasonable web dev isn't close to
solving that problem yet.

~~~
bradrydzewski
I put together an experimental package based on express:
<https://github.com/drone/routes/tree/master/exp>

~~~
rartichoke
Yeah, I looked at that one for quite a bit. It still leaves a lot to be
desired compared to Express but it was a good start. I thought the project was
dead since it hasn't been updated in a while.

I wasn't sure how to decouple the middleware functionality out of your lib so
it could be applied to a different router.

------
phasevar
Based on Github stars...

Web.go (875 stars) <https://github.com/hoisie/web>

Revel (742 stars) <https://github.com/robfig/revel>

Beego (264 stars) <https://github.com/astaxie/beego>

Falcore (224 stars) <https://github.com/ngmoco/falcore>

Mango (160 stars) <https://github.com/paulbellamy/mango>

Golanger (159 stars) <https://github.com/golangers/framework>

~~~
bradrydzewski
I'd like to add a few more options. First there is pat, by the Heroku / the
guy that created Sinatra: <https://github.com/bmizerany/pat>

if you need simple routing and REST url parameters this is a great library to
use. I've found it outperforms many of the other routing libraries. The best
part is that it (mostly) uses the standard net.http library and you don't need
to code against custom APIs.

there is also Gorilla Web Toolkit: <http://www.gorillatoolkit.org/>

this library has been around for a couple years, and is often recommended on
the Go mailing list. It recently switched from Google Code to Github, so it
doesn't have as many stars as the others. It provides routing, secure cookies,
sessions, and more.

I personally would start with Gorilla or Pat, because they are very thin
layers on top of the standard net.http library with little abstraction ... in
many cases the standard library works great. If you end up needing a higher
level framework you can always switch to something like Revel.

