7 Favourite Golang Open Source Projects

Page content

Greetings for the day Infected Engineers!!

I was going through the repositories I forked on GitHub and I came across some of the interesting Go open source projects that I would like to share with you.

But why Golang is so popular for these kind of open source projects?

One of the key reason Go is so popular for open-source projects is its fast compiler time, efficient memory management and easy deployment capabilities.

Additionally, the Go community is actively developing a range of tools and libraries that help developers in creating efficient and scalable applications with ease.

In this blog post, I will highlight 7 most favourite Go projects.

1. Hugo

My most favourite, Hugo is an open-source static site generator that was created in 2013. It is fast, flexible and widely used to create websites, blogs and documentations. It’s ease of use and fast performance make it a popular choice for developers. With Hugo, you can create a new website in a matter of minutes, and it will be ready to be deployed.

The blog that you are reading is also developed using Hugo I have chosen Hugo due to the same reason, it is fast, flexible, and hugo sites are SEO friendly.

In addition, you can develop it anywhere because Hugo output is a static website. Hugo created website can be developed on Github Pages also. Most of the cloud providers which provide hosting support Hugo natively. Example: Digital Occean

Hugo provides a simple interface and architecture that makes it easy to create content, customise themes, and deploy your website. Additionally, Hugo’s build-in support for various templates such as HTML, Markdown, and more makes it easy to create rich websites.

Hugo is built in Go and we can see how it took advantage of Go’s speed, simplicity and concurrency. You can generate thousands of post of a blog in a couple of seconds using Hugo.

2. Go Releaser

Second in the list is Go Releaser as name suggests, it simplifies the release process of Go projects. It helps developers to automate the creation of builds, packages and the distribution of these builds to various platforms such as GitHub, Docker Hub, and HomeBrew. It can also be used to announce new releases on Twitter, Slack, Discord and other platforms.

GoReleaser is built using Go and it’s standard library only. This means that it is a completely standalone tool which does not require any external dependencies. The tool is designed to be lightweight and fast, making it a great option for developers to automate their release process.

With this tool, developers can easily manage their releases and keep track of the latest version of their projects.

3. Cobra

If you want to develop any utility program for Linux then that must be a CLI tool. If you choose Golang as your primary language, Cobra can be used to develop CLI.

Cobra is a library created in Golang for developing modern CLI applications. It is a popular open source project that provides an easy to use framework for building command line applications.

Cobra is used in many open source projects such as Docker, Kubernetes, Hugo, and Github CLI.

Cobra offers simple and concise syntax for defining command one flags, arguments and subcommands. Cobra also support generating shell completions for almost all popular shells such as bash, zsh etc.

Cobra is built on the top of Go’s standard library and it follows Go’s idiomatic design principles. It uses flag package to define command-line flags and options. It relies on os package to interact with operating system.

Finally, it uses fmt package to print messages on terminal. These show that Cobra doesn’t depend on any third party libraries for these operations.

Cobra has a large and active community of contributors, they maintain extensive documentation and examples, making it easy for other developers to get started with building CLI application in Go using Cobra.

4. GoPhish

My favourite phishing tool GoPhish and it is not a surprise that it is. developed in Golang.

GoPhish is an open source phishing toolkit designed for security professionals. Basically, it is a web application that automates some of the phishing tasks and It provides an easy to use web interface and templates for creating and running phishing campaigns.

GoPhish is build using Go programming language and it includes features such as HTTP Server, email server and templating engine. It contributed to the adoption of Go programming language in the field of cybersecurity.

5. Vault

Application security is a big concern and In this evolving architecture of application it is even difficult to manage access to different secrets. A secret can be anything such as: Password, API keys, or Certificates

In addition, if we consider rolling keys, secure storage and detailed audit logs it become almost impossible without a robust solution.

Vault is nothing but that solution for managing all these secrets. It is developed by HashiCorp and no doubt by using Golang.

Vault provides a unified interface to access secrets securely, while maintain tight access control and recording detailed audit logs.

6. Gin

Gin is a web framework for Golang that provides a fast and flexible HTTP router. It is designed to be lightweight and easy to use, making it a popular choice for building RESTful APIs and web applications. It leverages Go’s powerful standard library and includes features such as middleware support, error handling, and routing.

Gin in an open source project that is actively maintained and updated by a community of developers. It is used by many companies to build a high-performance web applications, and its popularity has contributed to the growth and adoption of the Go programming language.

7. Gorm

I am not a big fan of ORM tools due to performance issues in large applications. Moreover, there are few SQL features that cannot be implemented in ORM without complicating logic and loss of performance.

However, the magic of ORM is really helpful of small to medium size application if your SQL queries are short and simple and it do not use features of SQL unsupported by ORM library.

Gorm is an ORM(Object-Relational Mapping) library for Go that provides a simple and easy to use interface for interacting with databases. It supports multiple databases and provides features such as data validation and migration.

Summary

Go has fast compilation time, efficient memory management and easy deployment capabilities which make it popular among open source projects & DevOps tools.

Here, I have shared my favourite 7 open source project. The list includes projects from different categories such as Web Apps, ORM tools & CLI tools.

You can go through the documentation, source code, and can contribute to any of it. I hope you will find it interesting too.