go语言开发的程序有:1、GraphJin,用于Postgres的即时GraphQL API;2、go-fits,FITS格式图像和数据读取器;3、goenv,可提供Go版本和Go工作区管理工具;4、go-server,敏捷服务器框架;5、gows,Go工作区管理器;6、GVM,提供了一个管理Go版本的接口;7、oh,使用Go编写的Unix shell;8、automi等等。

本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。

go语言开发的程序(项目)有哪些?下面本篇文章给大家分享一些Go语言的开源项目,下面一起看看:

API 服务和工具

图形语言

  • GraphJin - 用于 Postgres 的即时 GraphQL API。无需代码,将 GraphQL 编译为 SQL。

MTProto

  • MTProto - 在纯 Go 上编写的 Telegram API 的完整本机实现。

天文学

  • go-fits - FITS(灵活图像传输系统)格式图像和数据读取器
  • astrogo/fitsio - Pure Go FITS(灵活图像传输系统)格式图像和数据读取器/写入器
  • cosmo - 常见宇宙学的宇宙距离和时间计算(Friedmann-Lemaître-Robertson-Walker 度量)。
  • gonova - libnova的包装器 -- 天体力学、天体测量学和天体动力学库
  • meeus - Jean Meeus 的“天文算法”的实现
  • novas - 与海军天文台矢量天文测量软件 (NOVAS) 的接口
  • utdfgo - 航天器 UTDF 数据包读取器和解码器

构建工具

  • beku - 在用户环境(GOPATH 或供应商目录)中管理包的库和程序
  • colorgo -着色go 构建输出
  • dogo - 监控源文件的变化并自动编译和运行(重启)
  • fileembed-go - 这是一个命令行实用程序,用于获取大量源文件,并将它们嵌入到 Go 包中
  • gb - Go 的(另一个)构建工具,重点是多包项目
  • gg - 一个小型的多 golang 项目 env/make 管理工具。
  • GG - Go in Go 的构建工具
  • Godag - Go 编译器集合的前端
  • goenv - goenv 提供 Go 版本和 Go 工作区管理工具
  • gopei - 适用于 Unix / Linux 的简单 Go 编译器和 LiteIDE 安装程序,它添加了许多功能,如 github 支持和演示器。
  • go-pkg-config - pkg-config 的轻量级克隆
  • goscons - Go 的另一组 SCons 构建器
  • go-server - 敏捷服务器框架。
  • gotgo - 实现“泛型”的实验性预处理器
  • gows - Go 工作区管理器
  • goxc - 一个专注于交叉编译、打包、版本控制和分发的构建工具
  • GVM - GVM 提供了一个管理 Go 版本的接口
  • Realize - 具有文件观察器、输出流和实时重新加载的 Go 构建系统。使用自定义路径运行、构建和观察文件更改。
  • SCons Go Tools - 一组构建器,可以轻松地在 SCons 中编译 Go 项目
  • Task - 一个任务运行器 / Make 的简单替代方案

缓存

  • cache2go - 具有过期功能和访问计数器的并发安全缓存库
  • cache - Go 的 LevelDB 风格 LRU 缓存,支持非 GC 对象缓存。
  • go-cache - Go 的内存键:值存储/缓存(类似于 Memcached)库,适用于单机应用程序
  • golibs/cache - 一个很小的缓存包
  • gomemcached - go 中的 memcached 服务器
  • gomemcache - 一个 memcached 客户端
  • go-slab - go 的Slab 分配器。
  • groupcache - 缓存和缓存填充库,旨在在许多情况下替代 memcached
  • libmemcache - 使用 memcache 协议的快速客户端和服务器库
  • memcached-bench - 内存缓存服务器的基准工具
  • memcached - 快速的 memcache 服务器,支持超过可用 RAM 的持久性和缓存大小
  • memcache - 转到 memcached 客户端,从 YouTube Vitess 分叉
  • rend - 管理数据分块和 L1/L2 缓存的 memcached 代理
  • YBC 绑定- YBC 库的绑定为快速进程内 blob 缓存提供 API
  • g2cache - 协调的本地和外部两级缓存方案

云计算

  • aws-sdk-go - 适用于 Go 编程语言的 AWS 开发工具包。
  • Docker - Linux 容器运行时。由 dotCloud 开发。
  • 适用于 Go 的Enduro/X ASG应用服务器。为分布式事务处理提供应用服务器和中间件设施。支持基于微服务的应用架构。由 ATR Baltic 开发。
  • Flamingo - 轻量级云实例上下文化器。
  • gocircuit - 一种分布式操作系统,位于数据中心部署中多台机器上的传统操作系统之上。它提供了一个干净统一的抽象,将整个硬件集群视为一个单一的、单一的计算资源。由 Tumblr 开发。
  • gosync - 用于将数据同步到 S3 和从 S3 同步数据的包。
  • juju - 由 Canonical 开发的编排工具(部署、配置和生命周期管理)。
  • Kubernetes - 来自 Google 的容器集群管理器。
  • 基于 liblxc 的LXD守护进程提供 REST API 来管理容器
  • mgmt - 由@purpleidea(红帽员工)和 mgmt 社区开发的下一代配置管理工具(并行、事件驱动、分布式系统)。
  • rclone - “用于云存储的 rsync” - Google Drive、Amazon Drive、S3、Dropbox、Backblaze B2、One Drive、Swift、Hubic、Cloudfiles、Google Cloud Storage、Yandex Files
  • ShipBuilder - ShipBuilder 是一个极简的开源平台即服务,由 Jay Taylor 开发。
  • swift - Swift / Openstack Object Storage / Rackspace 云文件的 Go 语言接口
  • Tsuru - Tsuru 是由 Globo.com 开发的开源多语言云计算平台即服务 (PaaS)。

命令行选项解析器

  • argcfg - 使用反射从命令行参数填充结构中的字段
  • autoflags - 从配置结构填充 go 命令行应用程序标志
  • cobra - 现代 go CLI 交互的指挥官,支持命令和 POSIX/GNU 标志
  • cli - 用于实现命令行界面的 Go 库。
  • cmdline - 一个简单的解析器,支持短选项和长选项、默认值、参数和子命令。
  • command - 将子命令添加到您的 CLI,提供帮助和使用指南。
  • docopt.go - 用 Go 编程语言实现的 docopt。
  • flaq - 命令行选项解析库,符合 POSIX/GNU 标准,支持结构标记以及 Go 的标志方法。
  • getopt - Go 风格的全功能传统(BSD/POSIX getopt)选项解析
  • getopt - 另一个用于 Go 的 getopt 库。这个就像 Python 的一样。
  • gnuflag - GNU 兼容的标志解析;与flag基本兼容。
  • go-commander - 使用命令和子命令、参数检查和上下文使用帮助简化 Go 命令行界面的创建。从“go”工具代码分叉。
  • go-flags - go 的命令行选项解析器
  • go-getoptions - 受 Perl 的 GetOpt::Long 灵活性启发的 Go 选项解析器.
  • goopt - 用于解析命令行标志的 getopt 克隆
  • go-options - Go 的命令行解析库
  • mellium.im/cli 用于解析现代 CLI 应用程序的库,包括可能具有自己的标志和内置帮助系统的子命令。旨在使用最少的 API。
  • options - 自记录 CLI 选项解析器
  • opts.go - 轻量级 POSIX 和 GNU 风格的选项解析
  • pflag - Go 的标志包的直接替代品,实现了 POSIX/GNU 风格的 --flags。
  • subcommands - 一个并发的、经过单元测试的子命令库
  • uggo - 另一个选项解析器,提供类似 gnu 的选项解析。这个包装(嵌入)flagset。它还提供基本的管道检测(像 ls 这样的命令在通过管道传输时表现不同)。
  • writ - 具有全面测试覆盖率的灵活选项解析器。它的意思是“只是工作”并且不碍事。

命令行工具

  • amqp-message-remover - 通过正则表达式模式从 AMQP 队列中删除不需要的消息
  • Arduino-cli - Arduino CLI 是一种一体化解决方案,提供构建器、板/库管理器、上传器、发现以及使用任何 Arduino 兼容板和平台所需的许多其他工具。
  • awless - 亚马逊网络服务(AWS)的强大命令行界面。
  • 锅炉- 一个极快的 CLI 工具,用于从样板模板创建项目。
  • box-cli-maker - 为您的 CLI 制作高度定制的 Box。
  • comb-go - Golang 实现的 CLI 工具,用于管理CloudComb资源。
  • coshell - GNU 'parallel' 的替代品。
  • dasel - 使用命令行中的选择器查询和更新数据结构。与jq / yq相当,但支持 JSON、YAML、TOML 和 XML,运行时依赖为零。
  • DevTodo2 - 每个项目的小型命令行任务列表管理器。
  • dsio - Google Cloud Datastore 的命令行工具。
  • efs2 - 一个非常简单的配置管理工具,由愚蠢的 shell 脚本提供支持。
  • enumeration - 简单的枚举代码生成。
  • fzf - 命令行模糊查找器
  • gich - 用 Go 编写的跨平台实用程序
  • gister - 从命令行管理你的 github gist
  • git-time-metric - 简单、无缝、轻量级的 Git 时间跟踪
  • gmail2go - 简单的 gmail 多帐户 cli 邮件检查器
  • go-amqp-sniffer -侦听AMQP 交换并将消息流式传输到 mongoimport 兼容的 JSON 中的标准输出
  • gocreate - 从模板创建文件的命令行实用程序。
  • godocdoc - 启动 godoc 并在浏览器中将其打开到当前目录中的项目。
  • gojson - 用于操作 JSON 以用于开发 Go 代码的命令行工具。
  • golor - golor 是一个用于 golang 源代码着色的命令行工具
  • GoNote - 命令行 SimpleNote 客户端。
  • gopass - 具有 git 同步功能的命令行密码管理器
  • GoPasswordCreator - 创建随机密码的小工具
  • Grozilla - 具有恢复功能的文件下载器实用程序。
  • JayDiff - 用 Go 编写的 JSON diff 实用程序。
  • jsonpp - 一个快速的命令行 JSON 漂亮的打印机。
  • lsp - 一种更人性化的替代方案ls
  • ltst - 在您的终端中查看您选择的最新消息
  • passhash - 用于创建安全密码哈希的命令行实用程序
  • passman - 命令行密码管理器
  • pdfcpu - PDF 处理器。
  • pjs - 漂亮的打印和快速搜索 JSON 数据结构。
  • project - 非常简单的 CLI 工具,用于从样板模板设置新项目。
  • redis-view - 树状工具可帮助您探索 redis 服务器中的数据结构
  • remote-torrent - 一个简单的工具,用于远程下载 Torrent 并通过 HTTP 全速检索文件,而不受 ISP Torrent 限制
  • restic - 一个快速、高效和安全的备份程序
  • runtemplate - 一个非常简单的用于执行 Go 模板的命令行工具,对于与go generate.
  • runtemplate - 用于执行 Go 模板以支持为您的类型生成 Go 代码的简单工具。
  • sift - 快速而强大的开源替代品grep
  • tecla - 命令行编辑库
  • Terracognita - 从现有的云提供商(反向 Terraform)读取并生成您的基础设施作为 Terraform 配置上的代码。
  • wlog - 一个简单的日志记录界面,支持跨平台颜色和并发。
  • wmenu - 一个易于使用的 cli 应用程序菜单结构,提示用户做出选择。
  • mani - 帮助您管理多个存储库的 CLI 工具

压缩

  • brotli - Brotli 算法的绑定。
  • compress - 更快地替换 gzip、zip、zlib、deflate。
  • dgolzo - LZO 绑定。
  • go-lzo - Pure-Go LZO 压缩器/解压器,忠实地翻译了 C 代码库。
  • dictzip - 随机访问dictzip格式文件的读写器。
  • fast-archiver - 对大量小文件具有快速性能的替代归档工具。
  • gbacomp - 用于(解)压缩与 GBA BIOS 兼容的数据的 Go 库。
  • go-lz4 - LZ4 无损压缩算法的端口。
  • go-lzss - 在 Go 中实现 LZSS 压缩算法。
  • go-sevenzip - 包 Sevenzip 实现对 7-zip 档案的访问(包装 LZMA SDK 的 C 接口)。
  • go-zip - C 库 libzip 的包装器,提供修改现有 ZIP 档案的能力。
  • lz4 - 高性能,并发 LZ4 实现。
  • lzma - Go 的压缩/lzma 包。
  • pgzip - 多核 gzip,与标准库兼容。
  • ppmd-go - LZMA SDK 库的 Golang 绑定。(仅绑定 PPMD)
  • s2 - 高吞吐量 Snappy 扩展。
  • snappy-go - 谷歌在 Go 中的 Snappy 压缩算法。
  • yenc - yenc 解码器包。
  • zappy - 包 zappy 实现了 zappy 基于块的压缩格式。它旨在结合良好的速度和合理的压缩。
  • zstd - Pure Go Zstandard 压缩/解压缩。

并发和 Goroutines

  • grpool - 轻量级 Goroutine 池。
  • pool - Go 消费者 goroutine 池,可轻松处理 goroutine + 节省时间。
  • tunny - 一个 goroutine 池。
  • worker - 一个简单轻量级的并发作业框架。

配置文件解析器

  • awsenv - 一个小二进制文件,用于为配置文件加载 Amazon (AWS) 环境变量
  • code.soquee.net/env— 从.env或类似文件中加载环境变量,或从任何文件中加载环境变量io.Reader并填充本地环境。
  • confl - nginx 配置语法,宽松,编码/解码,自定义编组
  • configor - 支持 YAML、JSON、TOML、Shell 环境的 Golang 配置工具
  • fig - 用于从文件和环境变量(带有验证和默认值)读取配置的微型库。
  • flagfile - 向标准库标志包添加解析和序列化支持(添加 --flagfile 选项)
  • gcfg - 将 INI 风格的配置文件读入 Go 结构体;支持用户定义的类型和小节
  • globalconf - 毫不费力地坚持并从 ini 配置文件中读取标志值
  • goconf - 配置文件解析器
  • goconfig - 基于结构自省的配置,支持环境变量、命令行参数等。
  • hjson - 人类 JSON,人类的配置文件格式。宽松的语法,更少的错误,更多的评论。
  • hocon - 使用 HOCON(一种人性化的 JSON 超集)格式的配置库,支持环境变量、引用其他值、注释和多个文件等功能。
  • jsonconfig - 具有注释支持的 JSON 配置文件解析器
  • koanf - 轻量级,可扩展的库,用于在 Go 应用程序中读取配置。内置对 JSON、TOML、YAML、env、命令行的支持。
  • lib/ini - 包 ini 实现了 Git 配置文件语法定义的 INI 文本格式的读写。
  • lib/ssh/config - 包配置提供 ssh_config(5) 解析器和 getter。
  • properties - 用于读取和写入属性文件的库
  • scribeconf - Facebook Scribe 服务器配置文件解析器
  • 汤姆:
    • go-toml-config - 基于 TOML 的 Go 配置
    • go-toml - TOML 语言的 Go 库
    • gp-config - 具有基本和反射 API 的 TOML 语法子集
    • toml-go - 一个易于使用的 Toml 格式的 Go 解析器
    • toml - 用于 Go 反射的 TOML 解析器
    • tom-toml - 用于 Go 的 TOML 解析器,支持注释/格式化程序/应用。
  • uConfig - 一种无偏见、可扩展和可插入的配置管理。支持 YAML、TOML、JSON、Env vars、K8s DAPI 等。
  • viper - 一个完整的配置解决方案,支持 YAML、TOML 和 JSON 以及与命令行标志的集成
  • 亚姆:
    • yaml - 由 Canonical 提供的对 Go 语言的 YAML 支持
    • goyaml - LibYAML to Go 的一个端口
    • go-yaml - 对 Go 语言的 YAML 支持

控制台用户界面

  • ansi - 轻松创建 ansi 转义代码字符串和闭包以格式化、着色控制台输出
  • ansiterm - pkg 驱动响应 ANSI 转义序列的纯文本控制台
  • cons - 用于构建交互式控制台工具的简单包。
  • gnureadline - GNU Readline 绑定
  • go-ansiout - 另一个用于命令行应用程序的 ANSI 转义码序列工具。
  • gockel - 文本终端的 Twitter 客户端
  • gocui - 旨在创建控制台用户界面的极简库
  • gocurse - NCurses 的绑定
  • gocurses - NCurses 包装器
  • go-ibgetkey - “热键”类型的用户输入包,用于处理命令行应用程序中的击键。
  • go.linenoise - Linenoise 绑定(简单易读的提示,可选历史记录,可选选项卡完成)
  • goncurses - 一个 ncurses 库,包括表单、菜单和面板扩展
  • gopass - 允许输入密码而不回显到屏幕
  • go-pullbarz - 类似于 DOS 时代 Lotus 123 中的花式“灯条”菜单。依赖于 go-ibgetkey 和 go-ansiout。
  • go.sgr - 终端/控制台颜色和文本装饰(粗体、下划线等)。
  • go-stfl - STFL的薄包装,基于 ncurses 的小部件工具包
  • goterminal - 一个 go 库,可让您在终端上编写然后重新编写文本,以更新进度。它也适用于 Windows!
  • go-web-shell - 远程 web shell,实现 net/http 服务器。
  • igo - 一个简单的交互式 Go 解释器,基于 exp / eval 构建,具有一些 readline 改进
  • oh - 用 Go 编写的 Unix shell
  • pty - 获取伪终端设备
  • readline - GNU-Readline 类库的纯 go 实现
  • tcell - Tcell 是一个备用终端包,在某些方面类似于 termbox,但在其他方面更好。
  • termbox-go - ncurses 的极简替代品,用于构建基于终端的用户界面
  • termios - 终端支持
  • termon - Go 的简单终端控制界面。
  • uilive - uilive 是一个实时更新终端输出的 Go 库。
  • uiprogress - 在终端应用程序中呈现进度条的库。
  • uitable - 使用表格数据提高终端应用程序可读性的库。
  • yandex-weather-cli - Yandex 天气服务的命令行界面

持续集成

  • goveralls - 集成Coveralls.io连续代码覆盖率跟踪系统。
  • 工作服- 用于工作服等工具的多包 go 项目coverprofile

加密货币

  • Skycoin - Skycoin 是一种用 Go 编写的下一代加密货币。Skycoin 并非旨在为比特币添加功能,而是通过提高简单性、安全性和去除所有不必要的东西来改进比特币。

密码学

  • BLAKE2b - BLAKE2b 哈希函数的 Go 实现
  • cryptogo - 一些有用的与密码学相关的函数,包括填充(PKCS7、X.923)、带有随机盐和 IV 的 PBE
  • cryptoPadding - 在 Go 中实现的块填充方案
  • dkeyczar - Google'e Keyczar 加密库的 Go 端口
  • dkrcrypt - 韩文分组密码:SEED 和 HIGHT
  • dskipjack - SKIPJACK 加密算法的 Go 实现
  • go-cs - 并发 ssh 客户端。
  • go-ed25519 - Floodberry 的 ed25519-donna 的 CGO 绑定。快速批量验证。
  • go-hc128 - HC-128 的 Go 实现,一种 eSTREAM 流密码
  • go-jose - JOSE 标准的 Go 实现
  • go- lioness - 使用 Chacha20 和 Blake2b 的雌狮宽块密码
  • go-minilock - minilock 文件加密系统的 Go 实现。
  • GoSkein - Go 的 Skein 哈希和 Threefisch 加密的实现
  • go-sphinxmixcrypto - Sphinx 混合网络加密数据包格式操作
  • keccak - keccak (SHA-3) 实现
  • ketama.go - libketama 风格的一致性哈希
  • kindi - 加密命令行工具
  • openssl - 用于 go 的 openssl 绑定
  • otrcat - 使用 Off-The-Record 协议进行通信的通用命令行工具
  • scrypt - Colin Percival 的 scrypt 密钥推导函数的 Go 实现
  • secureio - 易于使用的 XChaCha20 加密包装器,用于io.ReadWriteCloser使用 ECDH 密钥交换算法、ED25519 签名和 Blake3+Poly1305 校验和/消息身份验证。也是一个多路复用器。
  • simpleaes - AES 加密变得简单
  • siphash - SipHash:一个快速的短输入伪随机函数
  • SRP - SRP:安全远程密码 - 在 Go 中的实现
  • ssh-vault - 使用 ssh 密钥加密/解密
  • themis - 用于保护敏感数据的多平台高级加密库:具有前向保密性的安全消息传递,安全数据存储 (AES256GCM);适合构建端到端的加密应用程序
  • Tiger - Tiger 加密哈希算法
  • whirlpool - 漩涡加密散列算法

数据处理

  • automi - 在 Go 频道上编写流程和集成流
  • Gleam - 快速、高效且可扩展的分布式 map/reduce 系统,DAG 执行,在内存或磁盘上,独立或分布式运行。
  • Glow - Glow 是一个易于使用的分布式计算系统,类似于 Hadoop Map Reduce、Spark、Flink、Storm。
  • gostatsd - Statsd 服务器和库。
  • Heka - 实时数据和日志文件处理引擎。
  • Kapacitor - 处理、监控和警报时间序列数据的框架。
  • parapipe - FIFO 管道,它在每个阶段并行执行,同时保持消息和结果的顺序
  • pipe - golang 中支持的几种函数式编程(Map/Reduce/Filter)
  • proto - 使用通道作为结果流的 Go 的 Map/Reduce/Filter 等。
  • 棘轮- 用于在 Go 中执行数据管道 / ETL 任务的库。

  • go语言开发的程序有哪些