Gin is a pretty minimalistic framework. Only the most essential features and libraries are included, making Gin a great framework for developing high-performance REST APIs.
The Gin community has created numerous well-tested middlewares that make developing for Gin a charm. Features include gzip, an authorization middleware, and sentry.
Gin-gonic is great for building a REST API for the backend if you want to develop an SPA using a frontend framework. But for anything that requires more features on the server side, it would be better to use a more "batteries included" framework.
The world has moved past its MVC obsession. It's not the way the web works anymore. The good thing about go is that it's trivial to write a server applications (literally takes minutes). relying on a bloated, archaic framework is missing the point
Revel comes bundled with a code reload tool which rebuilds the project on every file change. This code reload tool is also used to run, build and deploy the Revel application that you are building.
Revel is a "batteries included" web framework, which means that a lot of features already come out of the box. This way you don't have to spend time and find third-party libraries to integrate to the framework for most of the tasks you need to complete.
If you go with Echo chances are, you won't easily be able to get help or support for it.
If you encounter an issue, even if you did a pull request to fix it, there is a good chance your pull request won't get merged in a timely manner.
Beego is a "batteries included" web framework, which means that a lot of features already come out of the box. This way you don't have to spend time and find third-party libraries to integrate to the framework for most of the tasks you need to complete.
Beego has a built-in tool which watches the code for changes. This tool (called bee tool) can be configured to run any task once the code changes. It can run tests or reload and rebuild the whole project.
Beego's eloquent ORM is a simple and fast Object-Relational Mapping which helps with organizing the application's database. Beego examples and documentation all use the beego ORM. No need to learn to use and integrate another ORMs API.
Sometimes even though a build has failed, the pages will still render. Apparently it caches a previous build when the current one has a problem. This can be a frustrating though because it leaves you wondering why the page you are working on stopped working out of the blue.
The dev command will watch your .go and .html files and the asset folder by default. It will rebuild and restart your binary for you automatically so you don't have to worry about such things.
Just run the buffalo dev command and go to localhost:3000/ to see all changes live!
Buffalo aims to make building new web applications in Go as quick and simple as possible. buffalo new coke
That will generate a whole new Buffalo application that is ready to go. It'll even run go get for you to make sure you have all of the necessary dependencies needed to run your application.
Negroni cannot really be considered a true web framework because it does not have a built-in router. You need to choose one of the many web routers already developed by the Go community and integrate it into your Negroni project.
Negroni was developed as an alternative to Martini and Martini's "batteries included approach". You can choose which middlewares to include in your project. This way you get to choose what to have built-in.
A lot of effort has been put into making the documentation as clear and helpful as possible. And it shows.
The documentation is thorough and complete. Every part of the framework is explained in a way that's clear and understandable.
Martini is a very minimal framework. It only comes packed with the most essential features and libraries needed to develop a web application. If you need more features, you can install third party libraries. This way you only use what you need.
Goji is an abstraction layer over the standard Go library (which has support for HTTP) and added Einhorn support. There's probably very little you can do with Goji that you can't do with the standard library and a bit of elbow grease.
This makes Goji an extremely lightweight and fast framework.
Most of the tasks that Goji is used for can be completed with standard library support without adding the overhead of an additional external library and without having the risk of Goji development being abandoned one day.
Iris is a "batteries included" web framework, which means that a lot of features already come out of the box. This way you don't have to spend time and find third-party libraries to integrate to the framework for most of the tasks you need to complete.
Iris is fantastic, in some aspects it remembered me the agility of Django which i love in Python technology and in that, Iris is the best web framework in Go.
Latest commit was September 2015. Plus, there doesn't seem like there's much of a community surrounding it. Which results in fewer resources (guides or libraries) and a higher risk of Go-rest being abandoned one day.
gocraft/web is a minimalistic web framework which adds routing to the net/http package from the standard library. Even so, web.go tries to compensate for the small abstraction that it offers by structuring routes in a tree instead of a list. As such, it's a very fast framework which makes it a good choice in applications where good performance is key.
Most of the tasks that gocraft/web is used for can be completed with standard library support without adding the overhead of an additional external library and without having the risk of web.co development being abandoned one day.
Web.go is a minimalistic web framework which adds routing to the net/http package from the standard library. Even so, web.go tries to compensate for the small abstraction that it offers by structuring routes in a tree instead of a list. As such, it's a very fast framework which makes it a good choice in applications where good performance is key.
Most of the tasks that web.go is used for can be completed with standard library support without adding the overhead of an additional external library and without having the risk of web.co development being abandoned one day.
Go Relax is a pretty minimalistic framework. Only the most essential features and libraries are included. Making it a great framework for developing high-performance REST APIs.
Go Relax is great for building a REST API for the backend if you want to develop a SPA using a frontend framework for example. But for anything that requires more features on the server side, it would be better to use a more "batteries included" framework.
Tigertonic is a pretty minimalistic framework. Only the most essential features and libraries are included. Making it a great framework for developing high-performance REST APIs.
Tigertonic is great for building a REST API for the backend if you want to develop a SPA using a frontend framework for example. But for anything that requires more features on the server side, it would be better to use a more "batteries included" framework.
Because Gorilla has a philosophy of being as little intrusive as possible, it has no support for middleware or controllers. Instead, you have to choose how to implement them yourself. Either build them from scratch or choose one of the available libraries created by the Go community and implement them.
In addition to routing based on URL, Gorilla also supports routing based on HTTP methods, HTTP headers, query parameters, URL schemes or simply using an arbitrary function.