6️⃣分钟、1800字介绍12个值得一看的Go开源项目/框架

1,998 阅读5分钟

一、前言

Hi,这里是爱睡觉的老岳😀,最近发现国内的开源发展态势越来越好🚀,越来越多人开始投入大量时间到开源事业中💥,小弟不才,空有“开源”之心,只能完成一些简单的开源社区任务。为了推广OSS,本文会从不同领域列举多个值得一看的Go开源项目💜,如果反响较好,一定会给大家介绍更多开源项目💚。

二、云原生

2.1 Aeraki

🏡仓库地址:github.com/aeraki-mesh…

image.png

Aeraki 在希腊语中的意思和汉语中的 ”微风“差不多 。该项目提供了一种非侵入的、高度可扩展的解决方案来管理服务网格中的非HTTP的7层流量。它一般用来与Istio 集成,当然未来可能也会给其他服务网格带来“微风”。

2.2 Kubernetes (K8s)

🏡仓库地址:github.com/kubernetes/…

img

Kubernetes,也称为k8s或“ Kube ”,是一种容器编排工具,支持[容器运行管理和规模化。

通过使用 Kubernetes,免去了部署容器化应用等手动流程,让所有Docker 容器主机都可以拥有集群化、负载伸缩、冗余机制。

2.3 KubeVela

🏡仓库地址:github.com/kubevela/ku…

img

开发者在将应用程序部署到 K8s 时,通常需要了解 pod、服务、入口、资源请求、CRD 等概念,而要全部了解它们绝非易事。 KubeVela 能够让这些工作的工作量最小化,开发人员只需要管理一个名为 Appfile 的配置文件,无需了解太多复杂的 K8s 配置即可部署。

2.4 istio

🏡仓库地址:github.com/istio/istio

img

Istio 由两个组件组成,data plane和control plane。

data plane使用Sidecar将Envoy 代理容器与应用程序一起部署。然后Envoy 代理会拦截应用程序的所有流量来让服务之间进行通信。

control plane管理配置,从data plane接收指标,并通过 Envoy 代理提供的 API 动态更改配置。让data plane可以在不重新启动服务器的情况下改变进程。

三、区块链

3.1 ChainMaker

🏡仓库地址:git.chainmaker.org.cn/

它是国内首个自主可控区块链软硬件一体技术体系,拥有自主可控的底层平台、完整便捷的配套工具、标准化下的开放生态、灵活高效的装配模式以及国际领先的处理性能。

其使用国密算法。拥有基于国密证书的加密通讯和国产CA。开源协议友好,是Apache License 2.0开源协议。性能强大,具备高并发、低延时、大规模节点组网等先进技术优势,交易吞吐能力可达10万TPS。长安链将区块链执行流程标准化、模块化,可插拔、可分离的自主可控核心框架,可快速接入优势底层模块/单一定制化开发模块。

3.2 go-ethereum/Geth

🏡仓库地址:github.com/ethereum/go…

image.png

Geth 是以太坊官方提供的客户端软件,是 Go Ethereum 的缩写,它是使用以太坊的最常用的客户端软件。可以安装 Geth 作为全节点加入以太坊网络。

3.3 ChainLink

🏡仓库地址:github.com/smartcontra…

image.png

ChainLink的存在主要是为了给多个数据输入和输出建立一个存取点,这些输入和输出的数据比如:支付服务、银行和区块链系统等。

ChainLink能够放入各种数据,不限于支付服务和银行服务,还可以使用NBA总冠军球队等数据。它能够发挥数据传输的角色,传输区块链中不存在的链外数据。

四、Go & 数据库

4.1 MySQL

🏡仓库地址:github.com/go-sql-driv…

img

Go database/sql包 的 MySQL 驱动程序。

该包有以下几点特性:

  • 轻巧便捷
  • 纯Go实现
  • 能够自动处理断开的连接
  • 支持大于 16MB 的查询

4.2 TiDB

🏡仓库地址:github.com/pingcap/tid…

image.png

要介绍这个数据库,先介绍一下什么是NewSQL:

NewSQL 是一个新的数据库,它充分发挥了 RDBMS 和 NoSQL 的优点。除了 NoSQL 灵活的可扩展性和分布式架构之外,它同时支持 RDBMS 特有的 ACID 事务。

image.png

TiDB 是一个开源(apache2.0)云原生 NewSQL 数据库。

它的以下几点特性:

  • 同时支持OLTP(在线事务处理)和OLAP(在线分析处理):可以将目前使用的DWH产品与TiDB合二为一来实现HTAP(混合事务处理)
  • 横向扩展架构,不受数据库规模的限制:数据库可根据服务规模扩展/收缩,而不会中断服务
  • 多平台支持:可在本地部署,也可部署在云环境(AWS、GCP、Azure)中。
  • 提供 TiDB Cloud,完全托管的服务:TiDB Cloud 由 PingCAP 管理,因此不必再担心服务器配置、扩展、故障转移等。

4.3 MongoDB Go Driver

🏡仓库地址:github.com/mongodb/mon…

image.png

MongoDB的一款开源 Go 驱动,中规中矩的。有人说mgo也不错,其实mgo貌似挺久没人维护了,这里有一篇好文,将mgo和mongo-go-driver使用进行了比较:segmentfault.com/a/119000002…

五、Web框架及相关组件

5.1 Beego

🏡仓库地址:github.com/beego/beego

image.png

Beego 它的灵感来自 Tornado、Sinatra 和 Flask。Beego 是一个 RESTful HTTP 框架,用于快速开发 Go 语言企业应用程序,例如 RESTful API、Web 应用程序和后端服务。它集成了 Go 语言特定的功能,例如接口和结构嵌入。

5.2 Gin

🏡仓库地址:github.com/gin-gonic/g…

image.png

Gin 是一个用 Go (Golang) 编写的 Web 框架。gin 是一个非常轻量级的框架,不像 laravel 和 Django 这样的全栈框架,它拥有Martini风格 的 API,并且性能强大。

六、后语

不说了,不说了。就到此为止吧,再说就不礼貌了,睡觉去了。

⛵️ 欢迎大家关注我的Go专栏: 【让我们一起Golang】

还有区块链专栏:【细讲区块链】也欢迎大家来看看哦~

掰掰,睡午觉去啦~欢迎给爱睡觉的老岳点个赞。

本文正在参加技术专题18期-聊聊Go语言框架