下拉刷新
Go 项目
分类

这里是按照「分类」阅读往期的 HelloGitHub 月刊内容, 您目前在查看 HelloGitHub Go 项目 集合。

Star 1.4wFork 2.1kWatch 40180

一款由 Google 开源的容器监控工具。它可以实时统计容器运行时占用的资源,包括 CPU 利用率、内存使用量、网络传输等信息。提供了 Web 可视化页面,能方便用户分析和监控容器运行状态,支持包括 Docker 在内的几乎所有类型的容器。

sudo docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ --privileged \ --device=/dev/kmsg \ gcr.io/cadvisor/cadvisor:$VERSION
cadvisor
2.dsq
Star 2.9kFork 115Watch 1880

可直接用 SQL 查询数据文件的命令行工具。通过该项目无需将数据导入数据库,就能用 SQL 查询文件内的数据,可执行模糊查询、计数、排序等命令,支持 JSON、CSV、Excel、Parquet、YAML 等类型的文件。还可以搭配其它命令行工具(jq),实现更丰富的功能。

$ dsq testdata/userdata.parquet 'select count(*) from {}' | jq [ { "count(*)": 1000 } ]
Star 3.9kFork 462Watch 5780

立刻将 JSON 转化为 Go 类型定义的工具。这是一个用 JavaScript 写的在线小工具,可以直接将输入的 JSON 转成对应的 Go 类型定义。

json-to-go
Star 1.7wFork 610Watch 11080

仅一个文件的开源后端。将 SQLite 数据库、接口服务、登录认证、管理后台等服务器端的功能,做成一个开箱即用的可执行文件。让原本不懂后端开发的用户,也可以通过用户界面快速构建起接口服务。

pocketbase
Star 3.2kFork 446Watch 8580

用 Go 重新实现的 supervisord 。开源项目 supervisord 作为 Python 项目中常用的进程管理工具,深受广大开发爱好者的喜欢。但如果在非 Python 环境的情况下,用起来就不是那么顺手啦,所以作者用 Go 重写了 supervisord,编译后可以方便地运行在任何环境下。

$ cat supervisor.conf [program:test] command = /your/program args $ supervisord -c supervisor.conf
supervisord
6.env
Star 2.9kFork 193Watch 2279

用于解析环境变量的 Go 语言库。一般情况下项目启动时需要的配置参数,都是通过环境变量传递的。该项目就是 Go 语言用来解析环境变量的库,它简单、体积小、零依赖。

package main import ( "fmt" "time" "github.com/caarlos0/env/v6" ) type config struct { Home string `env:"HOME"` Port int `env:"PORT" envDefault:"3000"` Password string `env:"PASSWORD,unset"` IsProduction bool `env:"PRODUCTION"` Hosts []string `env:"HOSTS" envSeparator:":"` Duration time.Duration `env:"DURATION"` TempFolder string `env:"TEMP_FOLDER" envDefault:"${HOME}/tmp" envExpand:"true"` } func main() { cfg := config{} if err := env.Parse(&cfg); err != nil { fmt.Printf("%+v\n", err) } fmt.Printf("%+v\n", cfg) }
Star 2kFork 171Watch 2179

免费的 Kubernetes 教程。K8s 作为云原生时代的必备技能之一,多少得会一些。该教程侧重于实战引导,用 Go 写的项目作为演示对象,从最基础的容器定义开始,逐一讲述 pod、deployment、service、ingress 等资源,直到用 helm 打包部署一套完整服务。

k8s-tutorials
Star 6.1kFork 197Watch 5179

强大的 Kubernetes API 流量查看工具。如果把 k8s 比作操作系统,那它就是 k8s 上的 tcpdump,使用起来就像 Chrome 开发者工具一样简单直接,能够让 k8s 上微服务之间的网络通信一览无遗。

kubeshark
9.rod
Star 3.2kFork 231Watch 4379

Go 语言的网页自动化和爬虫库。该项目是 Go 语言封装的 DevTools 协议库,实现用 Go 语言操作浏览器,自动化之前需要手动完成的操作,比如:爬取客户端渲染的页面、端到端测试、自动填写表单、模拟点击等操作。项目包含丰富的示例代码,改改就能上手使用。

package main import ( "github.com/go-rod/rod" ) func main() { page := rod.New().MustConnect().MustPage("https://hellogithub.com") page.MustWaitLoad().MustScreenshot("a.png") }
Star 1.5wFork 1.5kWatch 14479

一款全面的容器安全扫描工具。目前最流行的开源容器镜像漏洞扫描工具,拥有速度快、精准度高、依赖检测、机密检查、对 CI 友好等特点。它不仅安装简单而且容易上手,仅需一条命令,即可发现镜像存在的安全漏洞。

# 安装 docker pull aquasec/trivy:0.33.0 # 运行 trivy image [YOUR_IMAGE_NAME]
trivy