下拉刷新
Go 项目
分类

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

1
cheat
Star 1.2w
Fork 805

一款交互式的“小抄”命令行工具。该项目可以创建、编辑、查看 *nix 系统命令的备忘录,比如常用命令的示例和解释。

cheat tar # To extract an uncompressed archive: tar -xvf '/path/to/foo.tar' # To extract a .gz archive: tar -xzvf '/path/to/foo.tgz' # To create a .gz archive: tar -czvf '/path/to/foo.tgz' '/path/to/foo/' # To extract a .bz2 archive: tar -xjvf '/path/to/foo.tgz' # To create a .bz2 archive: tar -cjvf '/path/to/foo.tgz' '/path/to/foo/'
cheat
2
devbox
Star 7.4k
Fork 166

为应用程序创建隔离环境的命令行工具。该项目可以创建一个可移植、隔离、用于开发的独立 shell,无需 Docker 和虚拟机。比如你的项目使用 Python 和 Go 语言,用这个工具仅需一条命令就能初始化一个独立的开发环境。

# 安装 curl -fsSL https://get.jetpack.io/devbox | bash # 初始化 devbox init # 安装 Python 和 Go devbox add python2 go_1_18 # 激活 devbox shell
3
faas
Star 2.4w
Fork 1.9k

一款高星的功能即服务框架。该项目用容器的方式运行 Serverless 函数,让功能即服务(FaaS)变得简单。它可以轻松地将函数和微服务部署到 Kubernetes,支持自动扩缩容、自带 Web 管理平台、Dockerfile 和多种编程语言。

faas
Star 1.4w
Fork 1.3k

好用的数据库迁移/变更工具。该项目是用 Go 写的数据库迁移(migrate)工具,帮你自动创建 SQL 迁移文件并管理版本,支持 MySQL、MariaDB、PostgreSQL、SQLite、Neo4j、ClickHouse 等不同类型的数据库。

$ migrate -source file://path/to/migrations -database postgres://localhost:5432/database up 2
Star 1.3w
Fork 1.4k

Go 写的轻量级分布式缓存库。该项目是由 Golang 官方开源的库,它实现了一个无需部署的分布式缓存。支持当查询未命中缓存时仅一个进程填充缓存(防穿透和雪崩)、热点数据自动扩展等功能,但不支持更新和删除数据(LRU 控制内存),所以仅适用于某些特定场景。

6
kopia
Star 6.3k
Fork 322

好用的跨平台备份工具。适用于 Windows、Linux 和 macOS 的备份/还原工具,它能够将指定的文件和目录加密压缩后生成快照,然后上传到远程服务器或云存储,实现远程备份数据的功能,开箱即用支持命令行和 GUI 两种使用方式。

kopia
Star 3.3w
Fork 1.8k

带 AI 功能的开源私人云相册。该项目是用 Go 语言写的在线私人相册,它稳定、部署方便,支持浏览/备份图片、按地点/时间线浏览照片、移动端自动备份照片,以及人脸识别、图片自动分类等功能,可用来搭建私人相册管理你的照片。

photoprism
8
zlsgo
Star 878
Fork 49

简单易用的 Golang 工具库。该项目把 HTTP 服务、日志、热重启、验证器、编码等十几种开发中经常写的功能,封装成了一个库,拿来即用提高开发效率。

func main() { // 需要验证的数据 data := "我是需要验证的数据,我的作用是做用户名" // 开始验证数据,不能为空,必须包含字母 name, err := zvalid.Text(data, "用户名").Required().HasNumber().HasLetter().String() if err != nil { zlog.Debug("验证失败", err) } data = "我是需要验证的数据,我的作用是做用户名,我有字母 A" name, err = zvalid.Text(data, "用户名").Required().HasLetter().String() zlog.Debug("用户名是:", name) // 初始化一个对象,并绑定需要验证的字符串 // zvalid.New().Verifi("username","用户名").String() }
9
asynq
Star 8.6k
Fork 624

纯 Go 写的简单、可靠的分布式任务队列。这是一个基于 Redis 的轻量级异步任务队列,它会为每个任务启动一个 goroutine,支持任务失败重试、优先级队列、定时任务、唯一任务等功能。

asynq
10
carbon
Star 4.5k
Fork 227

一个对开发者友好的 Go 时间处理库。这是一个功能丰富、容易上手的 Go 时间库,支持时间转换、时间差、时间旅行、星座、季节、农历、多语言等功能。

lang := carbon.NewLanguage() lang.SetLocale("zh-CN") c := carbon.SetLanguage(lang) if c.Error != nil { // 错误处理 log.Fatal(err) } c.Now().AddHours(1).DiffForHumans() // 1 小时后 c.Now().AddHours(1).ToMonthString() // 八月 c.Now().AddHours(1).ToShortMonthString() // 8月 c.Now().AddHours(1).ToWeekString() // 星期二 c.Now().AddHours(1).ToShortWeekString() // 周二 c.Now().AddHours(1).Constellation() // 狮子座 c.Now().AddHours(1).Season() // 夏季