精选的 Go 框架,库和软件的精选清单

2022年7月13日12:16:25

来自:https://learnku.com/articles/41230

精选的 Go 框架,库和软件的精选清单

概述

这是一个 Go 相关的框架,库和软件的精选清单,引用自awesome-go 项目,并翻译补充而来这是一个 Go 相关的框架,库和软件的精选清单,引用自awesome-go 项目,并翻译补充而来

如果看到不再维护的项目,请及时联系发帖者或留言,谢谢!*

音频和音乐

用于处理音频的库。

  • EasyMIDI -EasyMidi 是一个简单可靠的库,用于处理标准 Midi 文件(SMF)。

  • flac 支持 FLAC 流的 Native Go FLAC 编码器 / 解码器。

  • gaad 机 Go AAC 比特流解析器。

  • go- sox - 用于 go 的 libsox 绑定。

  • go_mediainfo- 用于 go 的 libmediainfo 绑定。

  • gosamplerate- 用于 go 的 libsamplerate 绑定。

  • id3v2- 用于 Go 的快速,稳定的 ID3 解析和编写库。

  • malgo- 迷你音频库。

  • minimp3- 轻量级 MP3 解码器库。

  • mix - 为音乐应用程序基于序列转到本地音频混合器。

  • mp3 -Native Go MP3 解码器。

  • music-theory -Go 中的音乐理论模型。

  • Oto- 在多个平台上播放声音的低级库。

  • PortAudio- 用于 PortAudio 音频 I / O 库的绑定。

  • portmidi- 绑定 PortMidi。

  • taglib- 为 taglib 绑定。

  • vorbis- “本机” Go Vorbis 解码器(使用 CGO,但没有依赖项)。

  • waveform -Go 程序包,能够从音频流生成波形图像。

身份验证和 OAuth

用于实施认证方案的库。

  • authboss -Web 的模块化身份验证系统。它尝试删除尽可能多的样板文件和 “硬东西”,以便每次在 Go 中启动新的 Web 项目时,都可以将其插入,配置并开始构建应用程序,而不必每次都构建身份验证系统。

  • branca -Branca 令牌的 Golang 实现。

  • casbin 授权库,支持访问控制模型,如 ACL,RBAC,ABAC。

  • cookiestxt 提供 cookies.txt 文件格式的解析器。

  • go-jose -JOSE 工作组的 JSON Web 令牌,JSON Web 签名和 JSON Web 加密规范的相当完整的实现。

  • go-oauth2 server - 用 Golang 编写的独立,符合规范的 OAuth2 服务器。

  • gologin 用于使用 OAuth1 和 OAuth2 身份验证提供程序登录的可链接处理程序。

  • gorbac 提供基于角色的轻量级访问控制(RBAC)实现。

  • goth - 提供一种简单,干净且惯用的方式来使用 OAuth 和 OAuth2。开箱即用地处理多个提供程序。

  • httpauth -HTTP 身份验证中间件。

  • jeff 具有可插拔后端的简单,灵活,安全且惯用的 Web 会话管理。

  • jwt 干净且易于使用的 JSON Web 令牌(JWT)实现。

  • jwt 轻量级 JSON Web 令牌(JWT)库。

  • jwt-auth auth - 用于 Golang http 服务器的 JWT 中间件,具有许多配置选项。

  • jwt-go -JSON Web 令牌(JWT)的 Golang 实现。

  • loginsrv- 具有可插入后端的 JWT 登录微服务,例如 OAuth2(Github),htpasswd 和 osiam。

  • oauth2 -goauth2 的后继者。JWT,Google API,Compute Engine 和 App Engine 支持随附的通用 OAuth 2.0 程序包。

  • osin -Golang OAuth2 服务器库。

  • paseto 与平台无关的安全令牌(PASETO)的 Golang 实现。

  • permissions2 2 - 用于跟踪用户,登录状态和权限的库。使用安全的 cookie 和 bcrypt。

  • rbac- 用于 Go 应用程序的简约 RBAC 软件包。

  • scope - 在 Go 中轻松管理 OAuth2 范围。

  • scs -HTTP 服务器的会话管理器。

  • securecookie- 高效的安全 cookie 编码 / 解码。

  • session -Web 服务器的 Go 会话管理(包括对 Google App Engine-GAE 的支持)。

  • sessiongate- go - 使用 SessionGate Redis 模块进行 Go 会话管理。

  • sessions - 用于 go http 服务器的简单,高性能,高度可定制的会话服务。

  • sessionup- 简单但有效的 HTTP 会话管理和标识包。

  • signedvalue - 签署并兼容时间戳的字符串龙卷风create_signed_valuedecode_signed_value 以及因此set_secure_cookie 而get_secure_cookie

  • sjwt- 简单的 jwt 生成器和解析器。

机器人

用于构建和使用机器人的库。

  • go-chat- bot - 用 Go 编写的 IRC,Slack 和 Telegram 机器人。

  • go- joe - 受 Hubot 启发但用 Go 编写的通用 bot 库。

  • go-sarah- 为所需的聊天服务(包括 LINE,Slack,Gitter 等)构建机器人的框架。

  • go-tgbot- 纯 Golang 电报 Bot API 包装器,由 swagger 文件,基于会话的路由器和中间件生成。

  • go-twitch-irc- 库为 twitch.tv 聊天写机器人

  • Golang CryptoTrading Bot - 基于控制台的交易机器人的 golang 实现,用于加密货币交易。

  • govkbot- 简单的 GoVK 机器人库。

  • hanu- 编写 Slack 机器人的框架。

  • stellar(Kelp)-Stellar DEX 的官方交易和做市机器人。开箱即用,用 Golang 编写,可与集中交易和自定义交易策略兼容。

  • margelet- 构建 Telegram 机器人的框架。

  • micha- 用于电报 Bot API 的库。

  • slacker- 易于使用的框架来创建 Slack 机器人。

  • slackscot- 用于构建 Slack 机器人的另一个框架。

  • tbot- 具有类似于 net /http 的 API 的电报 bot 服务器。

  • telebot- 用 Go 编写的电报 bot 框架。

  • telegram-bot-api- 简单干净的 Telegram bot 客户端。

  • Tenyks- 使用 Redis 和 JSON 进行消息传递的面向服务的 IRC 机器人。

命令行

标准 CLI

用于构建标准或基本命令行应用程序的库。

  • 1build- 命令行工具,可轻松管理特定于项目的命令。

  • argparse- 受 Python 的 argparse 模块启发的命令行参数解析器。

  • argv -Go 库使用 bash 语法将命令行字符串拆分为参数数组。

  • CLI - 基于 golang 结构标签易于使用的命令行包功能丰富。

  • cli- 用于在 Go 中构建命令行界面的简单而完整的 API。

  • cli- init - 开始构建 Golang 命令行应用程序的简单方法。

  • climax - 按照 Go 命令的精神,具有 “人脸” 功能的替代 CLI。

  • clîr- 简单清晰的 CLI 库。无依赖关系。

  • cmd- 扩展标准flag 软件包以支持子命令,并以 idomatic 方式提供更多支持。

  • cmdr- 一种 POSIX / GNU 样式,类似于 getopt 的命令行 UI Go 库。

  • cobra - 现代 Go CLI 交互的指挥官。

  • commandeer- 开发人员友好的 CLI 应用程序:根据结构字段和标签设置标志,默认值和用法。

  • complete- 在 Go + Go 命令 bash 完成中编写 bash 完成。

  • Dnote- 具有多设备同步功能的简单命令行笔记本。

  • docopt.go- 命令行参数解析器,它将使您微笑。

  • env- 基于标记的结构环境配置。

  • flag - 简单但功能强大的命令行选项解析库,用于支持围棋子。

  • flaggy- 强大而惯用的标志包,具有出色的子命令支持。

  • flagvar -Go 的标准flag 软件包的标志参数类型的集合。

  • go-arg -Go 中基于结构的参数解析。

  • go-commander -Go 库可简化 CLI 工作流程。

  • go-flags -go 命令行选项解析器。

  • go-getoptions -Go 选项解析器,它启发了 Perl 的 GetOpt :: Long 的灵活性。

  • gocmd- 用于构建命令行应用程序的 Go 库。

  • hiboot cli- 具有自动配置和依赖项注入的 cli 应用程序框架。

  • job -JOB,将您的短期命令作为一项长期工作。

  • kingpin- 支持子命令的命令行和标志解析器。

  • liner - 用于命令行界面的类似于 readline 的库。

  • mitchellh / cli- 用于实现命令行界面的 Go 库。

  • mow.cli -Go 库,用于使用复杂的标志和参数解析和验证来构建 CLI 应用程序。

  • ops -Unikernel 生成器 / 协调器。

  • pflag -Go 的标志包的直接替换,实现 POSIX / GNU 样式的–flags。

  • readline- 纯的 golang 实现,根据 MIT 许可在 GNU-Readline 中提供大多数功能。

  • sand- 用于创建解释器的简单 API 等。

  • sflags- 基于结构的标志生成器,用于标志,urfave /cli,pflag,眼镜蛇,主销和其他库。

  • strumt- 创建提示链的库。

  • ts- 时间戳转换和比较工具。

  • ukautz / clif- 小型命令行界面框架。

  • urfave / cli- 简单,快速,有趣的软件包,用于在 Go 中构建命令行应用程序(以前为 codegangsta /cli)。

  • wlog- 支持跨平台颜色和并发性的简单日志记录界面。

  • wmenu- 用于 cli 应用程序的易于使用的菜单结构,提示用户做出选择。

高级控制台用户界面

用于构建控制台应用程序和控制台用户界面的库。

  • asciigraph -Go 软件包,可在命令行应用程序中制作轻量级的 ASCII 线图 graph,而无需其他依赖项。

  • aurora - ANSI 终端颜色支持 fmt.Printf/sprintf 的。

  • cfmt- 受引导程序颜色类启发的上下文 fmt。

  • chalk - 直观的包装,用于美化终端 / 控制台输出。

  • colourize -Go 库,用于终端中的 ANSI 颜色文本。

  • ctc- 非侵入性跨平台终端颜色库不需要修改 Print 方法。

  • go-ataman -Go 库,用于在终端中呈现 ANSI 彩色文本模板。

  • go-colorable -Windows的可着色书写器。

  • go-colortext- 用于在终端输出颜色的 Go 库。

  • go-isatty -golang 的 isatty。

  • go- prompt - 受python-prompt-toolkit 启发,用于构建功能强大的交互式提示的库。

  • gocui- 极简主义 Go 库,旨在创建控制台用户界面。

  • gommon / color- 样式终端文本。

  • gookit / color- 终端颜色渲染工具库,支持 16 种颜色,256 种颜色,RGB 颜色渲染输出,与 Windows 兼容。

  • mpb- 终端应用程序的多进度条。

  • progressbar- 在每个 OS 中均可使用的基本线程安全进度条。

  • simpletable -Go 终端中的简单表。

  • tabby - 超级简单 Golang 表一个小小的图书馆。

  • tabular - 从命令行实用程序打印 ASCII 表,而无需将大量数据传递给 API。

  • termbox-go -Termbox 是用于创建跨平台基于文本的界面的库。

  • termdash- 基于termbox 的并受termui 启发的终端仪表板。

  • termui- 基于termbox-go 的终端仪表板,其灵感来自blessed-contrib

  • uilive- 用于实时更新终端输出的库。

  • uiprogress- 灵活的库,用于在终端应用程序中呈现进度条。

  • uitable- 使用表格数据提高终端应用程序可读性的库。

组态

用于配置解析的库。

  • cleanenv- 简约的配置读取器(来自文件,ENV,以及您想要的任何位置)。

  • config- 用于 Go 项目的轻量级但功能强大的配置包。

  • config- 云本机应用程序配置。仅两行将 ENV 绑定到结构。

  • config - JSON 或 YAML 配置与包装环境变量和标志解析。

  • configure- 通过多个来源提供配置,包括 JSON,标志和环境变量。

  • confita- 从多个后端以级联方式将配置加载到结构中。

  • conflate - 图书馆 / 工具合并来自任意 URL,验证多个 JSON / YAML / TOML 文件针对 JSON 模式,并在架构中定义的默认值应用。

  • ENV - 解析环境变量去结构(使用默认值)。

  • envcfg 环境变量解编为 Go 结构。

  • envconf- 来自环境的配置。

  • envconfig- 从环境变量中读取您的配置。

  • envh- 帮助程序管理环境变量。

  • gcfg- 将 INI 样式的配置文件读取到 Go 结构中;支持用户定义的类型和子节。

  • genv- 通过 dotenv 支持轻松读取环境变量。

  • go-ssm-config -Go 实用程序,用于从 AWS SSM(参数存储)加载配置参数。

  • go-up- 一个简单的配置库,具有递归占位符解析度,没有魔术。

  • goConfig- 将结构解析为输入,并使用命令行,环境变量和配置文件中的参数填充此结构的字段。

  • godotenv -Ruby 的 dotenv 库的 Go 端口(从加载环境变量.env)。

  • gofigure Go 应用程序的配置。

  • missing / jconf- 模块化 JSON 配置。在不牺牲完整的配置序列化的情况下,使您的配置结构以及它们配置的代码以及将解析委派给子模块的过程。

  • gookit / config- 应用程序配置管理(加载,获取,设置)。支持 JSON,YAML,TOML,INI,HCL。多文件加载,数据覆盖合并。

  • harvester - 一个易于使用的静态和动态配置包 supportig 播种,ENV VAR 和集成领事。

  • hjson -Human JSON,人类的配置文件格式。轻松的语法,更少的错误,更多的注释。

  • ingo- 标志ingo 在类似 ini 的配置文件中。

  • ini- 转到包中以读取和写入 INI 文件。

  • joshbetz / config -Go 的小型配置库,用于解析环境变量,JSON 文件,并在 SIGHUP 上自动重新加载。

  • kelseyhightower / envconfig -Go 库,用于管理来自环境变量的配置数据。

  • koanf- 轻巧,可扩展的库,用于读取 Go 应用程序中的配置。内置对 JSON,TOML,YAML,env,命令行的支持。

  • konfig- 在分布式处理时代,Go 的可组合,可观察和高性能配置处理。

  • mini -Golang 软件包,用于解析 ini 样式的配置文件。

  • nasermirzaei89 / env- 用于读取环境变量的简单有用的程序包。

  • onion - 用于 Go 的基于层的配置,支持 JSON,TOML,YAML,属性,etcd,env 和使用 PGP 加密。

  • sprbox- 构建环境感知工具箱工厂和不可知的配置解析器(YAML,TOML,JSON 和环境变量)。

  • store -Go 的轻量级配置管理器。

  • viper - 使用尖牙进行配置。

  • xdg- 遵循XDG 标准的跨平台软件包。

持续集成

持续集成帮助工具。

  • CDS- 企业级 CI / CD 和 DevOps 自动化开源平台。

  • drone -Drone 是一个基于 Go 编写的基于 Docker 的持续集成平台。

  • duci- 简单的 ci 服务器,不需要特定于域的语言。

  • gomason- 在干净的工作区中测试,构建,签名和发布 go 二进制文件。

  • goveralls -GoCoveralls.io 连续代码覆盖率跟踪系统的集成。

  • overalls - 适用于工具包之类的 Multi-Package go project coverprofile。

  • roveralls- 递归覆盖率测试工具。

CSS 预处理器

用于预处理 CSS 文件的库。

  • gcss -Pure Go CSS 预处理器。

  • go-libsass- 转到与 100%Sass 兼容的 libsass 项目的包装器。

数据结构

Go 中的通用数据结构和算法。

  • algorithms - 算法和数据结构。CLRS 研究。

  • binpacker- 二进制打包程序和解压缩程序可帮助用户构建自定义二进制流。

  • bit - 具有额外的位旋转功能的 Golang 设置数据结构。

  • bitset - 实现位集的 Go 包。

  • bloom- 在 Go 中实现的 Bloom 过滤器。

  • bloom -Golang Bloom 过滤器实现。

  • boomfilters- 用于处理连续,无界流的概率数据结构。

  • parallel-writer - 的高度并发替代bufio.Writer

  • conjungo- 一个小型,强大而灵活的合并库。

  • count-min-log- 执行 Count-Min-Log 草图:使用近似计数器进行近似计数(类似于 Count-Min 草图,但使用较少的内存)。

  • crunch -Go 包实现了用于轻松处理各种数据类型的缓冲区。

  • cuckoofilter -Cuckoo 过滤器:是 Go 中实现的计数布隆过滤器的很好替代。

  • deque- 高度优化的双端队列。

  • deque- 快速环形缓冲区双端队列(双端队列)。

  • dict -Go 的类似 Python 的字典(dict)。

  • encoding -Go 的整数压缩库。

  • go-adaptive-radix-tree - 自适应基数树的 Go 实现。

  • go-datastructures- 有用,高性能和线程安全的数据结构的集合。

  • go-ef -Elias-Fano 编码的 Go 实现。

  • go-geoindex- 内存中的地理索引。

  • go-mcache- 快速内存键:值存储 / 缓存库。指针缓存。

  • go-rquad- 具有有效点位置和邻居发现功能的区域四叉树。

  • gocache- 具有多个存储(内存,memcache,redis 等),可链接,可加载,指标缓存等的完整 Go 缓存库。

  • goconcurrentqueue- 并发 FIFO 队列。

  • gods - 数据结构。容器,集合,列表,堆栈,地图,BidiMap,树,HashSet 等。

  • gofal -Go 的小数 api。

  • golang-set -Go 的线程安全和非线程安全高性能集。

  • goset -Go 的有用的 Set 集合实现。

  • goskiplist -Go 中的跳过列表实现。

  • gostl -go 的数据结构和算法库,旨在提供类似于 C ++ STL 的功能。

  • gota -Go 的数据框,序列和数据整理方法的实现。

  • hide -ID 类型,将其编组进 / 出哈希以防止将 ID 发送给客户端。

  • hilbert -Go 程序包,用于在空间填充曲线(例如 Hilbert 和 Peano 曲线)之间映射值。

  • hyperloglog- 具有稀疏,LogLog-Beta 偏差校正和 TailCut 空间缩减的 HyperLogLog 实现。

  • iter -C ++ STL 迭代器和算法的实现。

  • levenshtein -Levenshtein 距离和相似性度量标准,具有可自定义的编辑费用和通用前缀的类似于 Winkler 的奖金。

  • levenshtein- 在 Go 中计算 levenshtein 距离的实现。

  • mafsa- 具有最小完美散列的 MA-FSA 实现。

  • merkletree -merkle 树的实现,可对数据结构的内容进行有效且安全的验证。

  • mspm- 用于信息检索的多字符串模式匹配算法。

  • null - 可空转到类型,可以被编组 / 解组到 / 从 JSON。

  • parsefields- 用于解析类似 JSON 日志的工具,以收集唯一的字段和事件。

  • pipeline - 具有扇入和扇出的管线的实现。

  • ptrie- 前缀树的实现。

  • remember-go - 缓存慢速数据库查询的通用接口(由 redis,memcached,ristretto 或内存支持)。

  • ring - 围棋实现了高性能,线程安全的布隆过滤器。

  • roaring - 实施压缩位集的软件包。

  • set - 使用 LinkedHashMap 的围棋设置简单的数据结构实现。

  • skiplist- 非常快地执行 Skiplist。

  • skiplist -Go 中的跳过列表实现。

  • timedmap- 具有过期的键 / 值对的地图。

  • treap- 使用树堆的持久,快速排序的地图。

  • trie -Go 中的 Trie 实现。

  • ttlcache- 内存中的 LRU 字符串接口 {} 映射,其中包含 golang 的到期时间。

  • typ- 空类型,安全的原始类型转换和从复杂结构中获取值。

  • willf / bloom- 实施 Bloom 过滤器的 Go 软件包。

数据库

在 Go 中实现的数据库。

  • badger -Go 中的快速键值存储。

  • bbolt -Go 的嵌入式键 / 值数据库。

  • bcache- 最终一致的分布式内存缓存 Go 库。

  • BigCache- 高效的键 / 值缓存,用于千兆字节的数据。

  • Bitcask -Bitcask 是使用纯 Go 编写的可嵌入,持久且快速的键值(KV)数据库,由于具有 bitcask 磁盘布局(LSM + WAL),因此具有可预测的读 / 写性能,低延迟和高吞吐量。

  • buntdb- 快速,可嵌入的内存中键 / 值数据库,用于 Go,具有自定义索引和空间支持。

  • cache - 内存中键:具有到期时间,0 个依存关系,100%覆盖率的值存储。

  • cache2go- 内存键:值缓存,支持基于超时的自动失效。

  • clusteredBigCache- 具有集群支持和单个项到期的 BigCache。

  • cockroach - 可扩展,地理复制,事务性数据存储。

  • coffer - 支持事务的简单 ACID 键值数据库。

  • couchcache- 由 Couchbase 服务器支持的 RESTful 缓存微服务。

  • CovenantSQL -CovenantSQL 是区块链上的 SQL 数据库。

  • Databunker- 建立符合 GDPR 和 CCPA 的个人身份信息(PII)存储服务。

  • dgraph- 可扩展,分布式,低延迟,高吞吐量图形数据库。

  • diskv- 本地支持的磁盘键值存储。

  • eliasdb- 具有 REST API,短语搜索和类似 SQL 的查询语言的无依赖关系的事务图数据库。

  • fastcache- 快速线程安全的内存高速缓存,用于大量条目。最大限度地减少 GC 开销。

  • GCache- 缓存库,支持过期的缓存,LFU,LRU 和 ARC。

  • go-cache -Go 的内存中键:值存储 / 缓存(类似于 Memcached)库,适用于单机应用程序。

  • goleveldb - Go 中LevelDB 键 / 值数据库的实现。

  • gorocksdb -Gorocksdb 是用 Go 编写的RocksDB 的包装。

  • gostore -Gostore 是用 Go 语言编写的一种简单,持久的嵌入式键值存储引擎。

  • groupcache -Groupcache 是一个缓存和缓存填充库,在许多情况下可以替代 memcached。

  • influxdb- 可扩展的数据存储区,用于指标,事件和实时分析。

  • Kivik -Kivik 为 CouchDB,PouchDB 和类似数据库提供了通用的 Go 和 GopherJS 客户端库。

  • ledisdb -Ledisdb 是基于 LevelDB 的高性能 NoSQL,如 Redis。

  • levigo -Levigo 是 LevelDB 的 Go 包装器。

  • moss -Moss 是用 100%Go 编写的简单 LSM 键值存储引擎。

  • nutsdb -Nutsdb 是用纯 Go 编写的简单,快速,可嵌入,持久性键 / 值存储。它支持完全可序列化的事务和许多数据结构,例如列表,集合,排序集合。

  • piladb- 基于堆栈数据结构的轻量级 RESTful 数据库引擎。

  • prometheus- 监视系统和时间序列数据库。

  • pudge- 使用 Go 的标准库编写的快速简单的键 / 值存储。

  • rqlite- 基于 SQLite 构建的轻型,分布式,关系数据库。

  • golang-scribble - 小型平面文件 JSON 存储。

  • slowpoke- 具有持久性的键值存储。

  • tempdb- 临时项目的键值存储。

  • tidb -TiDB 是分布式 SQL 数据库。受到 Google F1 设计的启发。

  • tieot- 由 Golang 提供支持的 NoSQL 数据库。

  • tracedb- 用于 IoT,实时消息传递应用程序的快速时间序列数据库。使用 github.com/unit-io/trace 应用程序通过 tcp 或 websocket 通过 pubsub 访问 tracedb。

  • Vasto- 分布式高性能键值存储。在磁盘上。最终一致。哈。能够增长或收缩而不会中断服务。

  • VictoriaMetrics- 快速,资源有效且可扩展的开源时间序列数据库。可用作 Prometheus 的长期远程存储。支持 PromQL。

数据库架构迁移。

  • avro- 发现 SQL 模式并将其转换为 AVRO 模式。将 SQL 记录查询为 AVRO 字节。

  • darwin -Go 的数据库架构演化库。

  • go-fixtures- 用于 Golang 出色的内置数据库 /sql 库的 Django 样式的夹具。

  • go-pg-migrations- 一个 Go 软件包,可帮助使用 go-pg /pg 编写迁移。

  • gondolier - 使用结构修饰符的数据库迁移库。

  • goose- 数据库迁移工具。您可以通过创建增量 SQL 或 Go 脚本来管理数据库的演变。

  • gormigrate -Gorm ORM 的数据库架构迁移帮助器。

  • migrate - 数据库迁移。CLI 和 Golang 库。

  • migrator- 简单的 Go 数据库迁移库。

  • pravasan- 简单迁移工具 - 当前用于 MySQL,但计划很快支持 Postgres,SQLite,MongoDB 等。

  • schema- 用于在 Go 二进制文件中嵌入数据库 /sql 兼容数据库的模式迁移的库。

  • skeema -MySQL 的纯 SQL 模式管理系统,支持分片和外部在线模式更改工具。

  • soda - 用于 MySQL,PostgreSQL 和 SQLite 的数据库迁移,创建,ORM 等。

  • sql-migrate- 数据库迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中。

数据库工具。

  • bucket - 为 Couchbase 优化数据结构框架,专门在一个水桶使用。

  • chproxy -ClickHouse 数据库的 HTTP 代理。

  • clickhouse-bulk- 收集小的广告素材并将大的请求发送到 ClickHouse 服务器。

  • datagen 多表并支持多行 DML 的快速数据生成器。

  • dbbench- 数据库基准测试工具,支持多个数据库和脚本。

  • go-mysql -Go 工具集,用于处理 MySQL 协议和复制。

  • go-mysql- elasticsearch - 自动将您的 MySQL 数据同步到 Elasticsearch 中。

  • kingshard -kingshard 是由 Golang 支持的 MySQL 的高性能代理。

  • myreplication -MySql 二进制日志复制侦听器。支持基于语句和行的复制。

  • octillery- 用于分片数据库的 Go 包(支持每个 ORM 或原始 SQL)。

  • orchestrator 器 - MySQL 复制拓扑管理器和可视化器。

  • pgweb- 基于 Web 的 PostgreSQL 数据库浏览器。

  • prep - 使用准备好的 SQL 语句而不更改代码。

  • perst- 从任何 PostgreSQL 数据库提供 RESTful API。

  • rwdb -rwdb 为多个数据库服务器设置提供只读副本功能。

  • vitess -vitess 提供了服务器和工具,这些工具和工具有助于为大型 Web 服务扩展 MySQL 数据库。

SQL 查询构建器,用于构建和使用 SQL 的库。

  • dbq -Go 的零样板数据库操作。

  • Dotsql -Go 库,可帮助您将 sql 文件保存在一个位置并轻松使用它们。

  • gendry- 非侵入性 SQL 构建器和强大的数据绑定器。

  • godbal -go 的数据库抽象层(dbal)。支持 SQL Builder,轻松获得结果。

  • goqu SQL 构建器和查询库。

  • igor -PostgreSQL 的抽象层,支持高级功能并使用类似于 gorm 的语法。

  • jet - 框架写在 Go 类型安全的 SQL 查询,有能力轻松地转换数据库查询结果到期望的任意对象结构。

  • mpath- 用于 SQL 记录的 MPTT(修改的预排序树遍历)包 - 物化路径的实现。

  • ormlite- 轻量级软件包,包含一些类似于 ORM 的功能和 sqlite 数据库的帮助程序。

  • ozzo-dbx- 强大的数据检索方法以及与数据库无关的查询构建功能。

  • qry- 使用原始 SQL 查询从文件生成常量的工具。

  • sqlf- 快速的 SQL 查询生成器。

  • sqrl -SQL 查询生成器,Squirrel 的分支,具有改进的性能。

  • Squalus -Go SQL 包上的薄层,使执行查询更加容易。

  • Squirrel -Go 库,可帮助您构建 SQL 查询。

  • xo- 根据现有的架构定义或支持 PostgreSQL,MySQL,SQLite,Oracle 和 Microsoft SQL Server 的自定义查询为数据库生成惯用的 Go 代码。

数据库驱动程序

用于连接和操作数据库的库。

  • 关系数据库

    • avatica- 用于数据库 /sql 的 Apache Avatica / Phoenix SQL 驱动程序。

    • bgc -BigQuery for go 的数据存储连接。

    • firebirdsql -Go 的 Firebird RDBMS SQL 驱动程序。

    • go-adodb- 用于使用数据库 /sql 的 go 的 Microsoft ActiveX 对象数据库驱动程序。

    • go-mssqldb -Go 的 Microsoft MSSQL 驱动程序。

    • go-oci8- 使用数据库 /sql 的 go 的 Oracle 驱动程序。

    • go-sql-driver / mysql -Go 的 MySQL 驱动程序

    • go-sqlite3- 使用数据库 /sql 的 go 的 SQLite3 驱动程序。

    • gofreetds -Microsoft MSSQL 驱动程序。在FreeTDS 上进行包装。

    • goracle -Go 的 Oracle 驱动程序,使用 ODPI-C 驱动程序。

    • pgx -PostgreSQL 驱动程序支持的功能超出了数据库 /sql 所公开的功能。

    • pq- 用于数据库 /sql 的 Pure Go Postgres 驱动程序。

  • NoSQL 数据库

    • aerospike-client-go -Go 语言的 Aerospike 客户端。

    • arangolite- 用于 ArangoDB 的轻量级 golang 驱动程序。

    • ASC - 数据存储连通性的塞式走。

    • dynago -Dynago 是 DynamoDB 的最少惊喜客户端的原则。

    • forestdb 绑定。

    • go-couchbase -Go 中的 Couchbase 客户端。

    • go-pilosa-Pilosa 的 Go 客户端库。

    • go-rejson- 使用 Redigo golang 客户端的 Redislabs ReJSON 模块的 Golang 客户端。轻松将结构作为 JSON 对象存储和操作在 Redis 中。

    • gocb- 官方 Couchbase Go SDK。

    • gocql -Apache Cassandra 的 Go 语言驱动程序。

    • godis- 受 jedis 启发,由 golang 编写的 redis 客户端工具。

    • godscache -Google Cloud Platform Go 数据存储区程序包的包装,可使用 memcached 添加缓存。

    • gomemcache -Go 编程语言的 memcache 客户端库。

    • gorethink- 用于 RethinkDB 的 Go 语言驱动程序。

    • goriak -Riak KV 的 Go 语言驱动程序。

    • mgm -Go 的基于 MongoDB 模型的 ODM(基于官方的 MongoDB 驱动程序)。

    • mgo-(无需维护)用于 Go 语言的 MongoDB 驱动程序,该驱动程序遵循标准的 Go 习惯用法,通过非常简单的 API 来实现丰富且经过测试的功能选择。

    • mongo-go-driver -Go 语言的官方 MongoDB 驱动程序。

    • neo4j- 用于 Golang 的 Neo4j Rest API 绑定。

    • Neo4j-GO -golang 中的 Neo4j REST 客户端。

    • neoism -Golang 的 Neo4j 客户。

    • redeo- 与 Redis 协议兼容的 TCP 服务器 / 服务。

    • redigo -Redigo 是 Redis 数据库的 Go 客户端。

    • redis -Golang 的 Redis 客户端

    • xredis,可自定义,干净且易于使用的 Redis 客户端。

  • 搜索和分析数据库。

    • bleve -go 的现代文本索引库。

    • elastic -Go 的 Elasticsearch 客户端

    • elasticsql - 转换 SQL 到 elasticsearch DSL 围棋。

    • elastigo -Elasticsearch 客户端库。

    • go-elasticsearch -Go 的官方 Elasticsearch 客户。

    • goes - 与 Elasticsearch 进行交互的库。

    • riot- 开源,分布式,简单高效的搜索引擎。

    • Skizze- 概率数据结构服务和存储。

  • 多个后端。

    • cachego- 用于多个驱动程序的 Golang 缓存组件。

    • cayley- 支持多个后端的 Graph 数据库。

    • dsc -SQL,NoSQL,结构化文件的数据存储连接。

    • gokv -Go 的简单键值存储抽象和实现(Redis,Consul,etcd,bbolt,BadgerDB,LevelDB,Memcached,DynamoDB,S3,PostgreSQL,MongoDB,CockroachDB 等)。

日期和时间

用于处理日期和时间的库。

  • carbon - 简单的时间延长了很多 UTIL 方法,从 PHP 碳库移植。

  • cronrange- 解析 Cron 风格的时间范围表达式,检查给定时间是否在任何范围内。

  • date -Augments 用于处理日期,日期范围,时间跨度,期间和日期的时间。

  • dateparse- 在不知道格式的情况下解析日期。

  • durafmt -Go 的持续时间格式库。

  • feiertage- 计算德国公共假期的功能集,包括 德国(Bundesländer)州的专业。复活节,五旬节,感恩节等

  • go-persian-calendar -Go(golang)中波斯(Solar Hijri)日历的实现。

  • go-str2duration- 将字符串转换为持续时间。支持时间。持续时间返回了字符串等。

  • go-sunrise - 计算给定位置的日出和日落时间。

  • go-week - 使用 ISO8601 周日期的有效软件包。

  • iso8601- 无需正则表达式即可有效解析ISO8601 日期时间

  • kair- 日期和时间 - Golang 格式库。

  • now - 现在是 golang 的时间工具包。

  • NullTime -Nullabletime.Time

  • strftime- 与 C99 兼容的 strftime 格式化程序。

  • timespan - 用于与时间间隔互动,定义为开始时间和持续时间。

  • timeutil -golang 时间包的有

  • 作者:思月行云
  • 原文链接:https://kenkao.blog.csdn.net/article/details/106015320
    更新时间:2022年7月13日12:16:25 ,共 13940 字。