TL: DR – Gin and Beego rule the roost for Go based web application frameworks, go-kit and micro are the most popular microservices toolkits. The dependence on single contributors is a concern for several frameworks.
Framework: ‘a basic structure underlying a system, concept, or text.’
Since its initial launch by Google in 2009, Go has established a loyal and vocal community of users. The Go community continues to grow, and organisations such as Microsoft are investing very heavily into direct community involvement and evangelism. Within the community there is a very strong culture of knowledge sharing and training.
From our perspective at RedMonk it is rare to encounter a new infrastructure project which is not using Go in a significant manner. We are also seeing Go appear as a language of choice for people building cloud native applications. All of this still needs to be caveated with the fact that while Go is a language that is wildly popular with early adopters, it is only starting to show up in the enterprise. That said Go has featured in our programming language rankings over the last few years.
There is also a growth in interest in using Go for serverless applications. As we recently noted Amazon are providing formal Go support for Lambda. While various other solutions exist the formal support from Amazon is significant.
For the purposes of this analysis we have looked at frameworks we have heard mentioned in our conversations around Go. We have explicitly excluded frameworks targeted at serverless, which we will return to separately. We are including web focused frameworks as well as those that are designed explicitly for microservices and frameworks that extend the functionality of tools such as gRPC or act as replacements of core Go components. As always if there are frameworks you feel should be included please let us know in the comments or on twitter.
We looked at 20 different frameworks covering web applications and microservices, and a number of clear tiers emerge for both web applications and microservices, we will focus our remaining analysis on the top five web application and top four microservices frameworks respectively.
For web applications we see two top tiers of frameworks
We will touch on Martini again in this piece, but it is no longer an active project. Developers who are currently using it should migrate their apps to an alternative framework.
Four frameworks emerge as the clear leaders specifically focused around Microservices.
Notes: very few of the frameworks have a twitter presence, so we have not included details on twitter followers here. Additionally, the volume of questions for the various frameworks on stackoverflow is very low, reflecting a different community interaction model versus other languages.
A Closer Look at Web Application Frameworks
Commits & Issues
While stars are useful proxy for interest in a framework, commits and issues are a more interesting measure of the vibrancy of a community.
In terms of commits Iris is by far the most active currently, while Beego, Gin and Iris take a clear lead on the issues front.
Commercial & Community Contributions Web Application Frameworks
For each of the web application frameworks we identified, where possible, commercial contributions and issues raised, and split into three distinct groups – the primary commercial entity contributing code and/or raising issues, other commercial entities and the wider community.
The most significant core contributor to Beego worked at Apple during the most active period of the project, hence we note Apple as the largest commercial contributor.
We see the wider community raising the majority of issues with Beego. It is worth noting that we see the majority of Beego usage occurring in Asia.
The majority of commercial contributions to Gin occurred in 2015/16. The wider community raises the majority of issues, but the overall numbers are relatively small.
As noted above Martini is no longer actively developed. Developers still using the framework should look to an alternative, with Gin being the most obvious migration path.
Activity more or less ceased in 2016.
Overall activity in Echo has been dominated by LabStack, but has tailed off significantly over 2017.
Development and issues around Revel are predominantly from the community at this point, after the initial development work from Yext. That said overall activity is relatively low. What we find very interesting with Revel is its steady growth over the years.
Iris development is dominated by Makis Maropoulos, with over 80% of all commits coming from him. Issues come from the wider community.
Update – Feb 8th: A number of people, both publicly (although anonymously) and privately (people well known to RedMonk), have pointed out various issues regarding incorrect attribution of code committed to the Iris project and license violations. These make it impossible for us to discern an accurate view of contributions to the project.
A Closer Look at Microservices Frameworks
Commits & Issues
The overall number of contributions has eased off for all of the frameworks, reflecting their relative stability and maturity at this point. Go-Kit sees more issues than any of the other frameworks, but the overall totals are very low.
Go-Kit is by far the most popular Microservices framework for Go and looks set to continue its trajectory for the foreseeable future. The majority of contributions come from the community.
The main contributor to Micro, Asim Aslam, has also founded a company around the project. Over 90% of the contributions come from him. The number of issues is very low. Micro has been on a solid upward trajectory since its launch.
Gizmo originated at the New York Times, which dominates the overall contributions. Issues are very low, and the level of overall activity is limited.
Kite originated from Koding who are the main contributor for commits and issues. Overall development has slowed as the main engineers working on the project have moved to other companies.
Commercial Support & Licensing Information
When we move to large scale enterprise deployments, commercial support and licensing choices can become significant factors. MIT is the dominant license and commercial support is only available on Micro.
Disclosures: Amazon, Google, Microsoft are current RedMonk clients.
February 11, 2018 at 2:27 am
That Iris author/developer is toxic. You see it has virtually no issues because the author actively deletes issues he can’t/won’t solve. Just Google it, that framework is marred with controversies. I would avoid it.
February 20, 2018 at 8:39 am
Thank you. We have added a note above about the veracity of the data.
Go-Based Web App Frameworks That Could Rule 2018 – Dice Insights says:
February 20, 2018 at 1:33 pm
[…] is rare to encounter a new infrastructure project which is not using Go in a significant manner,” read the firm’s recent blog posting on the most popular Go-based frameworks. “We are also seeing Go appear as a language of choice […]
clive boulton says:
February 24, 2018 at 7:46 pm
On tracking Go adoption consider Perkeep (perkeep.org née Camlistore) for the projects influence on enterprise adoption. Seen in the top tier contributors.
February 27, 2018 at 1:11 am
You should add https://github.com/go-ozzo/ozzo-routing into the micro framework category. It’s very simple with a descent API.