证明Go语言的强大,没这10个开源项目不行

Posted 开源最前线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了证明Go语言的强大,没这10个开源项目不行相关的知识,希望对你有一定的参考价值。

程序员书库(ID:CodingBook) 猿妹综合编译


经过10年的发展,Go在编程语言界已经有了一定的地位,Go轻量级且易于编译,它丰富的库和抽象简化了并发和分布式应用程序的开发,也因此吸引了许多开发者。


但是衡量一个编程语言是否成功的真正标准,是开发人员使用它创建的项目,Go已证明它是快速开发网络服务、软件基础结构项目以及各种功能强大的紧凑工具的首选。


本文整理10个用Go编写的最值得关注的项目,其中许多项目比Go语言还出名,它们在各自的领域里都有着举足轻重的作用,这10个项目都是开源的,并且托管于Github上,所以对Go感兴趣的人都可以轻松查看让这些项目的Go代码。



1、Docker

你很难找到一个比Docker更成功的Go项目,在一年多点的时间里,这种软件容器化技术成为了Go适用于大规模分布式软件项目的典范。 Docker团队喜欢Go,因为它具有大量的有点: 无需依赖项的静态编译、强大的标准库、完整的开发环境,以及能够在最省力的情况下针对多种架构进行构建。

Github地址: https://github.com/docker/docker


2、Kubernetes

如果Docker是用Go编写的,那么其他重要的面向云的容器项目也应该是用Go编写的。 谷歌的容器编排项目Kubernetes也是Go项目,大部分Kubernetes的大部分自组件和生态系统也是,一个典型例子是: 超轻量级的Kubernetes衍生品k3,适用于只需要Kubernetes基础组件而不想要了解过多Kubernetes的人群。


谷歌曾经考虑用其他语言编写Kubernetes,包括C/ c++、Java和Python。 但据Kubernetes的联合创始人、前技术主管、VMware的首席工程师乔•贝达(Joe Beda)表示,这些语言都不能像Go那样达到“最佳状态”。 正如贝达所说,“Go是最佳的选择。

GitHub地址: https://github.com/kubernetes/kubernetes



3、Fedora CoreOS

CoreOS(现在是一个Red Hat项)使用Docker将Linux转变成一堆松散耦合的容器,因为这有可能避免一系列混乱的依赖项,但依赖项已成为Linux软件包管理的基本对象,而CoreOS利用Docker实现了这一神奇的功能,CoreOS的两项基本服务Etcd和Fleet都是用Go编写的,Fleet允许你“将CoreOS集群视为共享单一的初始化系统那样”。 Etcd是一个分布式的键值存储,它处理Docker应用程序和CoreOS实例之间的设置同步。 它们都是用Go编写的,因为Go具有“出色的跨平台支持、小型二进制文件和强大的社区支持”。

项目地址: https://coreos.fedoraproject.org/



4、InfluxDB

InfluxDB是一个“没有外部依赖的分布式时间序列数据库”。 “时间序列”一词指的是影响数据库主要关注指标或事件,并允许对它们进行实时分析。 “没有外部依赖”意味着你不需要其他软件来使用InfluxDB数据库; 它是完全独立的(就像Go应用程序一样)。 可以通过提交JSON的REST调用将数据库写入或从数据库读取数据,还可以使用简单的SQL语言进行查询,甚至可以使用regexes。 InfluxDB数据库是高度弹性和横向可扩展的,选择Go作为语言可是为了实现这些功能。

GitHub地址: https://github.com/influxdb/influxdb



5、Istio

作为Kubernetes领域的一部分,Istio项目解决了一个在许多企业应用程序环境中都没有处理好的问题: 如何处理将服务彼此链接并和外部世界连接起来的网络结构? Istio在Kubernetes集群中的每个容器之间以及这些容器与外部世界之间提供可编程的“服务网格”或网络代理层,因此可以通过共享控制平面以编程方式对网络进行任何更改。 因为Kubernetes也是用Go写的,所以Go也很适合Istio的编写,另一个原因是Go适用于去中心化的分布式网络项目。

Github地址: https://istio.io/



6、Traefik

另一个用Go编写的与网络相关的项目是Traefik,Træfɪk是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 Traefik可以和一系列的编排选项一起使用,从Kubernetes和Docker Swarm到Amazon ECS和Azure Service Fabric。 Traefik自动创建在这些编排器下运行的微服务所需的路由,以便和外部世界连接。 它还生成适合用户的业务流程的跟踪数据和统计信息。

Github地址: https://github.com/containous/traefik



7、Hugo

静态站点生成器现在非常流行。 毕竟,它们提供了一种简单快速的方法创建一个只使用静态html、CSS和javascript的快速、安全的网站。 Hugo是一个静态站点生成器,它利用了许多Go特性实现快速、流畅的运行,Go的HTML渲染工具、网络库、国际化功能等。 所有这些Go特性都使Hugo易于拆包、运行和快速构建站点。

Github地址: https://gohugo.io/



8、Terraform

HashiCorp由Vagrant(基于Ruby的开发环境管理工具)的开发者创办,它充分利用Go的速度和功能来构建更庞大更宏伟的项目: Terraform,它的口号是 "Write, Plan, and create 。 用于安全高效地预配和管理云基础结构

Github地址: https://github.com/hashicorp/terraform



9、CockroachDB

Go被用来构建多种分布式的、云本地的应用程序。

CockroachDB因其弹性而得名,它是一个分布式数据库,旨在应对各种各样的数据中心故障,同时继续响应用户的SQL查询。 CockroachDB完全是用Go编写的,除了一小部分c++代码,用于实现以前的RocksDB项目中的性能密集型核心功能。

Github地址: https://github.com/cockroachdb/cockroach



10、Gravitational Teleport

Go已经成为许多网络项目和基于它们的下游项目的默认语言。 举个例子: Go实现SSH本身就很有用,它是Gravity Teleport等项目的基础。G ravity Teleport允许用户通过shell安全地访问服务器。 它通过单点登录来加强安全性,而无需分发密钥


Github地址: https://github.com/gravitational/teleport



●编号797,输入编号直达本文

●输入m获取到文章目录


以上是关于证明Go语言的强大,没这10个开源项目不行的主要内容,如果未能解决你的问题,请参考以下文章

Go语言诞生5周年!10大Go语言开源项目推荐

熟读这5个开源项目就是合格的GO语言工程师!

画风清奇!盘点各编程语言中有趣的开源项目!

go语言快速入门 Web开发框架 10

盘点 GitHub 那些标星超过 20 K 的 Golang 优质开源项目

go语言熟知的开源项目