DEV Community

Cover image for 5 Most Popular Open Source Go Projects For Beginners
Nikhil Soman Sahu
Nikhil Soman Sahu

Posted on

5 Most Popular Open Source Go Projects For Beginners

Golang is a programming language developed by Google. This statically-typed language has some additional features such as garbage collection, type safety, some dynamic-typing capabilities, a large standard library, etc. Over the last few years, the number of high-quality open source Go projects has gone up exponentially and the open source community has also embraced the programming language.
Go has gained popularity among engineering teams at data-native companies as well as the open source community, according to Apcera CEO Derek Collison, who wrote about it in the Go blog. Go is now the standard language for systems work in infrastructure-as-a-service, orchestration, and platform-as-a-service. Businesses like CloudFlare, Google, and Splice have all switched to Go. According to the Go blog, this indicates that Go has taken over as the preferred language for a variety of use cases. According to the blog, other open source projects like Hugo, Syncthing, and Fzf improved experiences while Kubernetes and Docker constructed new Go-based solutions. According to a 2018 Stack Overflow Developer Survey, Go came in at number five among the top-loved and most-wanted languages.

**

  1. Docker **

Docker unlocks the potential of your organisation by giving developers and IT the freedom to build, manage and secure business-critical applications without the fear of technology or infrastructure lock-in. Docker enables you to bring traditional and cloud-native applications built on Windows Server, Linux and mainframe into an automated and secure supply chain, advancing dev to ops collaboration and reducing time to value.

2. etcd
Etcd is written in Go and an open source distributed key-value store which uses the Raft consensus algorithm to manage a highly-available replicated log. It is a distributed reliable key-value store for the most critical data of a distributed system, with a focus on being well-defined, user-facing API, automatic TLS with optional client authentication, benchmarked 10,000 writes/sec, reliable as it is properly distributed using Raft.

3. Kubernetes
Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling of applications. This system is built upon a decade and a half of experience at Google running production workloads at scale using a system called Borg, combined with best-of-breed ideas and practices from the community and hosted by the Cloud Native Computing Foundation (CNCF).

4. Syncthing
Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers. Syncthing is still in development, although a large number of features have already been implemented such as Web GUI which configures and monitors Syncthing via a responsive and powerful interface accessible via your browser, synchronize as many folders as you need with different people. This program doesn’t need IP addresses or advanced configuration: it just works, over LAN and over the Internet.

Syncthing releases its latest version 1.1.1 in April 2019 which has some interesting features such as bug fixing and other enhancements. The next release, v1.1.2, is expected in May 2019.

5. InfluxDB
InfluxDB is an open source time series platform. This includes APIs for storing and querying data, processing it in the background for ETL or monitoring and alerting purposes, user dashboards, and visualizing and exploring the data and more. The master branch on this repo now represents InfluxDB 2.0, which includes functionality for Kapacitor (background processing) and Chronograf (the UI). The latest InfluxDB 1.x is the stable release and recommended for production use.

The latest version of this time-series database is released in April 2019. As a beginner in InfluxDB you may encounter some issues in deleting data using retention policies, memory usage, readable timestamps, etc. Click here to understand how to tackle these situations.

Top comments (0)