awesome-go 资源列表1[转]


参考:awesome-go 就是 avelino 发起维护的 Go 资源列表,内容包括:音频和音乐库、命令行工具、服务端应用、流处理、持续集成、数据库、机器学习、NLP、物联网、中间件、文本处理、安全、机器人技术等。

资源列表

音频和音乐库

  • flac : 原生Go语言编写的FLAC数据流编码与解码器。
  • gaad : 原生Go语言编写的AAC比特流解析器。
  • go-sox : libsox库的go语言封装
  • GoAudio : 原生Go语言编写的音频处理库。
  • gosamplerate : libsamplerate库的Go语言封装
  • id3v2 :go语言开发的ID3编码和解码库,具有快速和稳定的特性。
  • malgo :go语言开发的迷你音频库。
  • minimp3 : 轻量级MP3解码库。
  • mix : 针对音乐类应用程序的基于序列的Go原生音频混音器。
  • mp3 : 原生Go语言的mp3解码器.
  • music-theory : 基于go语言音乐理论模型。
  • Oto : 可用于在多个平台上播放音频的底层库
  • PortAudio : 音频I/OPortAudiogo语言封装
  • portmidi : 音频I/OPortMidigo语言封装
  • vorbis : Go语言版Vorbis解码器(使用到CGO,但并不依赖与cgo)
  • waveform : 基于音频流来生成音频波形图的go语言库

认证和OAuth授权

  • authboss : 针对web应用的模块化认证系统,尽量去除模版代码和硬编码来以灵活可配置的方式来嵌入到web应用程序中,从而避免重复编码和重复配置。
  • branca : Branca TokensGolang实现。
  • casbin : 支持ACLRBACABAC等访问控制模型的授权与认证库。
  • cookiestxt : 支持cookies.txt 文件格式的解析器。
  • go-email-normalizer : 用于支持电子邮件地址的规范表示的Golang库,。
  • go-guardian : Go-Guardian支持以简洁又清晰的方式来进行API认证和web认证,认证模型支持LDAPBasicBearer token和基于证书的认证
  • go-jose : 相当完整地实现了JOSE工作组的JSON Web TokenJSON Web SignaturesJSON Web Encryption规范。
  • go-oauth2-server : 不需要其他依赖的、符合规范的、用Golang 编写的OAuth2 服务器。
  • gologin : 适用于OAuth1和OAuth2多身份登录认证的实现方案
  • gorbac : Golang中一个轻量级的基于角色的访问控制(RBAC)实现。
  • goth : 以简单、干净、常用的方式来使用OAuthOAuth2。支持多种身份认证。
  • httpauth : HTTP认证中间件
  • jeff : 简单、灵活、安全、习惯性的Web会话管理,支持可插拔的后端。
  • jwt : 干净且易于使用的JSON网络令牌JWT的实现。
  • jwt : 轻量级JSON网络令牌(JWT)库。
  • jwt : 针对go语言的 安全、简单、快速的JSON Web Tokens 。
  • jwt-auth : 用于Golang http服务器的JWT中间件,有许多配置选项。
  • jwt-go : -JSON Web Tokens(JWT)的Golang实现。
  • loginsrv : JWT登录微服务,具有可插拔的后端,如OAuth2 (Github)htpasswdOSIAM
  • oauth2 : 继承自goauth2。实现了JWT,Google APIs,GCE,GAE的通用OAuth 2.0授权包。
  • osin :Go语言OAuth2 服务器库
  • otpgo : 基于时间的一次性密码TOTP和基于HMAC 的一次性密码HOTP库。
  • paseto : 平台无关的安全令牌(PASETO)Golang实现。
  • permissions2 : 用于跟踪用户、登录状态和权限的库,依赖安全cookiesbcrypt
  • rbac : 用于Go应用程序的极简RBAC库。
  • scope : 在Go中轻松管理OAuth2作用域。
  • scs : HTTP服务器的会话管理器。
  • securecookie : 高效的安全cookie编码/解码库。
  • session : Go 语言会话管理(支持Google App Engine - GAE)
  • sessiongate-go : 使用SessionGate Redis模块进行Go会话管理。
  • sessions : 为Go语言HTTP 服务器开发的非常简单的、高性能的、高可定制的会话服务
  • sessionup : 简单而有效的HTTP会话管理和标识库。
  • sjwt : - 简单的jwt生成器和解析器。

机器人相关

构建和使用机器人的库

  • ephemeral-roles : 根据语音频道成员是否出现来管理临时角色的机器人。
  • go-chat-bot : 用Go 编写的IRCSlackTelegram机器人。
  • go-joe : 受 Hubot 启发,用 Go 编写的通用型机器人库。
  • go-sarah : 为聊天服务如LINESlackGitter 等构建机器人的框架。
  • go-tgbot : 由swagger文件、基于会话的路由器和中间件生成的纯Golang实现的Telegram机器人API封装。
  • go-twitch-irc : 用于编写twitch.tv聊天机器人的库。
  • Golang CryptoTrading Bot :golang实现的基于控制台的加密货币交易所交易机器人库
  • govkbot : 简单的Go VK机器人库。
  • hanu : 用于编写Slack机器人的框架。
  • Kelp : Stellar DEX的官方交易机器人。开箱即用,用Golang编写,兼容中心化交易所和自定义交易策略。
  • margelet : 用于构建Telegram机器人的框架。
  • micha : 封装Telegram机器人api的Go库。
  • olivia : 一个用人工神经网络构建的聊天机器人。
  • slacker : 用于创建Slack机器人的简单易用框架。
  • slackscot : 构建Slack机器人的框架。
  • tbot : Telegram机器人服务器,其API类似于net/http
  • telebot : 用Go编写的Telegram机器人框架。
  • telegram-bot-api : 简单干净的Telegram机器人客户端。
  • Tenyks : 使用RedisJSON进行消息传递的面向服务的IRC机器人。

命令行工具

标准 CLI

用于创建一个标准命令行应用程序的库

  • 1build : 管理项目专用命令的命令行工具。
  • argparse : 受Pythonargparse模块启发的命令行参数解析器。
  • argv : 用于分隔使用bash的语法的命令行字符串并将其作为参数的Go语言库,
  • cli : 功能强大,使用简单的命令行软件库,基于Golang结构体tag实现
  • cli : 一个功能丰富、易于使用的命令行工具包
  • climax : 可以显示“人脸”的命令替代库。
  • clîr : 一个简单而清晰的CLI库,不需要其他依赖。
  • cmd : 扩展了标准flag包,具有支持子命令的特性
  • cmdr : 一个POSIX/GNU风格,类似于getopt的命令行UI的Go库。
  • cobra : 一个现代化的命令行。
  • commandeer : 开发友好的CLI应用程序:基于结构字段和标签设置标志参数、默认值和用法。
  • complete : 使用 Go语言编写的bash 命令补全工具以及Go命令补全工具
  • Dnote : 支持多设备同步的命令行笔记工具。
  • env : 基于tag的结构体环境配置。
  • flag : 简单而强大的Go命令行选项解析库,支持子命令。
  • flaggy : 功能强大的flag包,具有出色的子命令支持。
  • flagvar : Go标准标志包的标志参数类型集合。
  • go-arg : Go中基于结构体的参数解析。
  • go-commander : 用于简化CLI工作流程的 Go 库。
  • go-flags : GO命令行选项解析器。
  • go-getoptions : Go 选项解析器,灵感来自 Perl中灵活性的 GetOpt::Long
  • gocmd : 用于构建命令行应用程序的 Go库。
  • hiboot cli : 具有自动配置和依赖注入功能的 cli 应用程序框架。
  • job : 将你的短期命令转化为长期作业。
  • kingpin : 支持子命令的命令行和标志位解析器。
  • liner : 命令行文本解析器
  • mitchellh/cli : 用于实现命令行交互的 Go语言库
  • mow.cli : 用于构建命令行程序的工具库,支持更加精准的标记及选项解析和验证
  • ops : Unikernel编辑器和生成器
  • pflag : Go flag软件包的替代品, 实现了POSIX/GNU风格的flags.
  • sand : 用于创建解释器等工具的简单API库。
  • sflags : 基于结构体的 flag生成器,支持flag, urfave/cli, pflag, cobra, kingpin等其他库
  • strumt : 用于创建提示链的库。
  • ts : 时间戳转换和比较工具。
  • ukautz/clif : 一个小型命令行程序开发框架
  • urfave/cli : 简单、快速、有趣的、用于构建 Go 语言命令行程序的软件包。
  • wlog : 简单的日志接口,具有跨平台和并发支持等特性
  • wmenu : 为命令行程序提供简单的菜单结构选项来提供给用户来进行选择

高级控制台UI

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

  • asciigraph : 没有其他依赖的可以在命令行应用中制作轻量级的ASCII行图┈┈╭╯的go语言工具包
  • aurora : ANSI 终端颜色,支持 fmt.Printf/Sprintf
  • cfmt : 受bootstrap颜色类启发的上下文fmt
  • cfmt : 简单方便的格式化风格化输出,与fmt库完全兼容
  • chalk : 符合直觉的用于美化命令行输出的库
  • colourize : 支持终端输出带色彩的ANSI字符。
  • ctc : 非侵入式的跨平台终端颜色库,不需要修改打印方法
  • go-ataman : 用于在终端中渲染ANSI 彩色文本模板的Go 库。
  • go-colorable : Windows上使用的可以输出彩色文本的库
  • go-colortext : 用于在终端进行多彩文字输出的库
  • go-isatty : go语言版本的isatty
  • go-prompt : 受 python-prompt-toolkit 的启发,用于构建强大的交互式提示符的go语言库
  • gocui : 极简的控制台用户界面创建库.
  • gommon/color :多样的命令行文本
  • gookit/color : 格式化终端文本。
  • mpb : 为命令行提供多个进度条的工具
  • progressbar : 适用于各种操作系统的,线程安全进度条管理库。
  • pterm : 在每个平台上美化控制台输出的库,有许多可组合的组件。
  • simpletable : 在终端中用Go实现简单的表格。
  • tabby : 超级简单的Golang表格的库。
  • table : 基于终端颜色的表格库。
  • tabular : 从命令行工具中打印ASCII表格,而不需要向API传递大量数据集。
  • termbox-go : Termbox是一个用于创建跨平台文本界面的库。
  • termdash : 基于 termbox-goGo 终端仪表盘,灵感来自 termui
  • termui : 基于 termbox-goGo 终端仪表盘,灵感来源于blessed-contrib
  • uilive : 用于实时更新终端输出的库
  • uiprogress :用于渲染进度条的库
  • uitable : 用于改善命令行中,表格数据可读性的库
  • yacspin : 用于终端的CLi Spinner 工具包。

配置管理

配置解析库

  • aconfig : 简单、有用的配置加载器。
  • cleanenv : 简约的配置读取器(从文件、ENV以及任何你想要的地方读取)。
  • config : 一个轻量级但功能强大的Go项目配置包。
  • config : 云端本地应用配置。只需两行就可以将ENV绑定到结构上
  • config : 具有环境变量和标志解析功能的JSONYAML配置包装器。
  • configuration : 用于从环境变量、文件、标志和 “默认 “标签初始化配置结构的库。
  • configure : 可以通过多种途径进行配置,包括 JSON 标记位以及环境变量
  • configuro : 来自ENVFiles的意见性配置加载和验证框架,专注于12-Factor兼容应用程序。
  • confita : 从多个后端级联加载配置到一个结构中。
  • conflate : 从任意URL合并多个JSON/YAML/TOML文件的库/工具,对JSON模式进行验证,并应用模式中定义的默认值。
  • env : 解析环境变量为Go 语言结构体
  • envcfg : 解析环境变量为 Go 语言结构体
  • envconf : 通过环境变量来配置
  • envconfig : 通过环境变量读取配置
  • envh : 管理环境变量的助手
  • fig : 用于从文件和环境变量中读取配置的小型库(带有验证和默认值)。
  • gcfg : 读取类似 INI 类型的配置文件为 Go语言结构体,支持自定义类型。
  • genv : 通过 dotenv 支持轻松读取环境变量。
  • go-aws-ssm : 从AWS System Manager - Parameter Store 获取参数的Go 包。
  • go-ini : Go 包,可对 INI 文件进行整理和解整理。
  • go-ssm-config : 用于从 AWS SSM(参数存储)加载配置参数的 Go工具。
  • go-up : 一个简单的配置库,具有递归占位符解析功能,没有各种怪招。
  • goConfig : 解析一个结构作为输入,并将命令行、环境变量和配置文件中的参数填充到该结构的字段中。
  • godotenv : 把 Rubydotenv库移植到 Go(从 .env中加载环境变量)。
  • gofigure : 让Go 语言应用程序配置变得简单
  • gone/jconf : 模块化 JSON 配置工具。允许你将配置参数结构体和使用它的代码放在一起,而不需要让主配置文件了解所有子模块的细节来进行序列
  • gookit/config : 应用程序配置管理(load,get,set),支持JSON、YAML、TOML、INI、HCL
  • harvester : Harvester,一个易于使用的静态和动态配置包,支持 envarsConsul 集成。
  • hjson : 便于程序员使用和阅读的配置文件格式。具有更加轻松的语法,更少的错误和更多的注释
  • hocon : 用于使用HOCON(一种人类友好的JSON超集)格式的配置库,支持环境变量、引用其他值、注释和多文件等功能。
  • ingo : 将配置标记持久化到一个类似 ini的文件中
  • ini : 用于读写INI 文件的库
  • joshbetz/config : 消息配置库,可以解析环境变量、JSON文件并根据SIGHUP自动重新载入
  • kelseyhightower/envconfig : 用于管理环境变量配置数据的Go 库。
  • koanf : 轻量级、可扩展的库,用于读取Go应用程序中的配置。内置支持JSON、TOML、YAML、env、命令行。
  • konfig : 为分布式处理时代的Go提供可组合、可观察和可执行的配置处理。
  • mini : 用于解析类 ini 文件的库
  • nasermirzaei89/env : 用于读取环境变量的简单实用包
  • onion : 基于分层结构的Go配置库,支持JSON、TOML、YAML、properties、etcd、env以及使用PGP加密。
  • store : Go的轻量级配置管理器,支持JSON、TOML、YAML、properties等。
  • swap : 基于构建环境,递归地实例化/配置结构解析库。
  • typenv : 简约、零依赖、类型化的环境变量库。
  • viper :Go语言配置工具
  • xdg : 遵守XDG 标准 的配置工具XDG 标准

持续集成

持续集成的辅助工具

  • CDS : 企业级CI/CDDevOps自动化开源平台。
  • drone : Drone 是一个基于Docker的持续集成平台,使用 Go语言编写
  • duci : 简单的ci服务器,不需要特定领域的语言。
  • gomason : 从一个干净的工作空间测试、构建、签署和发布你的go二进制文件
  • goveralls : Coveralls.io是一个持续代码覆盖率检测系统,这个库提供了 Go语言的支持
  • overalls : 针对多packageGo 语言项目,为 Goveralls 这样的工具生成覆盖率报告
  • roveralls : 回归覆盖测试工具

CSS预处理

预处理css文件的库

  • gcss : 纯 Go 语言编写的 CSS预处理器
  • go-libsass : 100%兼容 Sass 的库 libsassGo 语言封装

数据结构

go语言实现的数据结构与算法

  • algorithms : 算法和数据结构学习资料
  • binpacker : 二进制数据封包拆包工具,帮你构建自定义的二进制数据流
  • bit : Go语言集合数据结构。提供了额外的位操作功能
  • bitset : 实现了 bitsetGo语言包.
  • bloom : Go语言实现的布隆过滤器(bloom filter
  • bloom : Go语言实现的布隆过滤器
  • boomfilters : 概率统计数据结构,用于处理大量连续的数据。
  • cmap : 一个用于go的线程安全的并发地图,支持使用interface{}作为键
  • concurrent-writer : bufio.Writer的高并发drop-in替代品
  • conjungo : 一个小巧、强大、灵活的合并库。
  • count-min-log : Go语言实现的 Count-Min-Log sketch算法(类似 Count-Min sketch 算法,但是使用的内存更少)
  • crunch : Go包,实现缓冲区,方便处理各种数据类型。
  • cuckoofilter : Cuckoo过滤器:一个用go语言实现的计数布隆过滤器的替代品
  • deque : 高度优化的双端队列。
  • deque : 快速的环形缓冲区deque(双端队列)。
  • dict : Go 的类似Python的字典(dict)
  • encoding : 整型压缩库
  • go-adaptive-radix-tree : Go语言实现的自适应基数树
  • go-datastructures:一组有用的、高性能的、线程安全的数据结构
  • go-edlib : 与 Unicode 兼容的 Go 字符串比较和编辑距离算法库(Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler 等)。
  • go-ef : Elias-Fano编码的Go实现。
  • go-geoindex : 基于内存存储的地理索引
  • go-mcache : 快速的内存key:value存储/缓存库。
  • go-rquad : 区域四叉树,支持有效点位置和领域发现
  • gocache : 完整的Go缓存库,支持多个存储(内存、memcache、redis......)。
  • goconcurrentqueue : 并发FIFO队列。
  • gods :Go语言数据结构、容器、集合、列表、栈、键值对、 BidiMaps、树、HashSet
  • gofal : Go的微分算法库。
  • golang-set : 线程安全和非线程安全的高性能集合
  • goset : Go集合实现。
  • goskiplist : Go语言实现的跳跃表
  • gostl : 数据结构和算法库,旨在提供类似于C++ STL 的功能。
  • gota : 为go语言实现了数据帧,序列以及数据噪音的方法
  • goterator : 迭代器的实现,提供映射和减少功能。
  • hide :具有hash 函数功能,以防止向客户端发送敏感ID。
  • hilbert : 用于映射空间填充曲线(例如希尔伯特曲线和皮亚诺曲线)和数值的库。
  • hyperloglog : HyperLogLog 的go语言实现
  • iter : C++ STL迭代器和算法的Go实现。
  • levenshtein : 编辑距离(levenshtein distance)和相似性度量计算库
  • levenshtein : 在Go中计算levenshtein距离的实现。
  • mafsa : Go 语言实现的 MA-FSA ,包含最小完美哈希实现
  • merkletree : 实现了梅克尔树,提供了一种高效、安全的数据结构内容验证方法
  • mspm : 用于信息检索的多字符串模式匹配算法。
  • nan : 在一个库中实现了零分配的Nullable结构,并提供了方便的转换函数。
  • null : 可为nullGo类型,它们可以被`marshalled/unmarshalled到JSON。
  • parsefields : - 用于解析JSON类日志的工具,用于收集特殊字段和特定事件。
  • pipeline : 一个带有扇形输入和扇形输出的管道的实现。
  • ptrie : 前缀树的实现
  • remember-go : 用于缓存慢速数据库查询的通用接口(由redis、memcached、ristretto或内存支持)。
  • ring : 高性能、线程安全的 bloom过滤器的 Go 实现。
  • roaring : 实现了压缩bitsets算法的Go语言库
  • set : 在 Go中使用 LinkedHashMap实现简单的集合数据结构。
  • skiplist : 非常快的Go Skipipllist实现。
  • skiplist : 在 Go中实现的Skiplist
  • slices : slice操作函数
  • timedmap : 具有过期键值对的map
  • treap : 使用树堆的持久化快速有序map
  • trie : Go语言实现的Trie
  • ttlcache : 基于过期时间的内存字符串缓存接口。
  • typ : 空类型安全的基础类型转换器和从复杂结构中取值的开发库。
  • willf/bloom : 实现了布隆过滤器的库

数据库

go语言实现的数据库

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

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

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

  • BigCache : 为GB量级数据设计的高效键/值缓存

  • Bitcask : Bitcask 是一个用纯 Go 编写的可嵌入的、持久的、快速的键值(KV)数据库,由于采用了 bitcask 盘上布局(LSM+WAL),它具有可预测的读/写性能、低延迟和高吞吐量。

  • buntdb : 快速,可嵌入的,内存键值数据库,可定义索引及 spatial

  • cache : 内存中的key:value存储,有过期时间,0依赖,<100 LoC,100%覆盖。

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

  • clusteredBigCache : BigCache支持集群和单个项目过期。

  • cockroach : 可扩展的、一致的事务型数据库

  • Coffer : 简单的ACID键值数据库,支持事务。

  • couchcache : RESTful 缓存微服务,基于Couchbase数据库

  • CovenantSQL : CovenantSQL是一个区块链上的SQL数据库。

  • Databunker : 为符合GDPRCCPA而构建的个人身份信息PII存储服务。

  • dgraph : 可扩展的、分布式的、低延时、高吞吐的图数据库

  • diskv : 具有 disk-backed 功能的持久化键值存储

  • eliasdb : 无依赖、事物型图数据库,支持 REST API、短语搜索以及类SQL 的查询语言

  • fastcache : 针对大量条目的快速线程安全内存缓存。将GC开销降到最低。

  • GCache : 支持缓存过期、 LFU、 LRUARC的缓存库

  • go-cache : 基于内存存储的缓存,适用于分布式部署的应用

  • goleveldb : GoLevelDB键/值数据库的实现

  • groupcache : Groupcache是一个缓存及缓存填充库,在很多情况下用于替代 memcached.

  • immudb : immudb是一个轻量级、高速的不可变数据库,适用于用Go编写的系统和应用程序。

  • influxdb : 用于度量、事件和实时分析的可扩展数据存储。

  • Kivik : KivikCouchDB、PouchDB和类似的数据库提供了一个通用的GoGopherJS客户端库。

  • ledisdb : Ledisdb是一个高性能 NoSQL 数据库,类似 Redis

  • levigo : LeviGoLevelDBGo语言封装

  • moss : Moss 是一个简单的 LSM键值存储引擎,100% Go 语言实现

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

  • piladb : 轻量级 RESTful 数据库引擎,基于堆栈结构

  • pogreb : 嵌入式键值存储,适用于重读工作负载。

  • prometheus : 监控系统及时间序列数据库

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

  • rqlite : 基于 SQLite的轻量级的、分布式的关系型数据库

  • Scribble : 小巧的 JSON 文件存储

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

  • tempdb : 临时数据的键值对存储

  • tidb : TiDB 是一个分布式的SQL 数据库。受到了Google F1的启发

  • tiedot : 基于Go语言的NoSQL 数据库

  • unitdb : 用于物联网、实时消息应用的快速时序数据库。

  • Vasto : 一个分布式高性能键值存储。在磁盘上。最终一致。HA。能够在不中断服务的情况下增长或收缩。

  • VictoriaMetrics : 快速、资源高效、可扩展的开源时间序列数据库。可作为Prometheus的长期远程存储。支持PromQL

    数据库迁移工具

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

  • darwin : 数据库模式增量库

  • go-fixtures : 类似DjanGo fixtures,用于 Golang 的內建dababase/sql

  • go-pg-migrations : 帮助使用 go-pg/pg编写迁移的Go 包。

  • gondolier : 使用struct装饰器的数据库迁移库。

  • goose : 数据库迁移工具。你可以通过编写增量 SQLGo 语言脚本来管理你的数据库

  • gormigrate : 数据库模式迁移帮助工具,用于Gorm ORM.

  • migrate : 数据库迁移。命令行及 Go语言库

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

  • pravasan : 简单的迁移工具,目前支持 MySQL但是近期打算支持Postgres, SQLite, MonGoDB 等等

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

  • skeema : MySQL的纯SQL模式管理系统,支持sharding和外部在线模式变更工具

  • soda : 数据库迁移、创建、 ORM等等,用于MySQL, PostgreSQL,以及 SQLite.

  • sql-migrate : 数据库迁移工具,允许利用 Go-bindata 将数据库迁移嵌入应用程序

    数据库工具

  • bucket : 为Couchbase优化的数据结构框架,专门针对bucket的使用进行了优化。

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

  • clickhouse-bulk : 收集小的插入请求后一并发送大的请求到ClickHouse服务器。

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

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

  • go-mysql : 用于处理MySQL 协议及复制的Go语言工具集

  • go-mysql-elasticsearch : 将你的 MySQL 数据自动同步到Elasticsearch

  • kingshard : kingshard是一个Go语言编写的高性能 MySQL数据库代理

  • myreplication : MySql 二进制 log 复制监听器,支持基于语句和基于行的复制

  • octillery : 用于sharding数据库的Go包(支持所有ORM或原始SQL)。

  • orchestrator : MySQL复制拓扑管理器及可视化工具

  • pg_timetable : PostgreSQL 的高级调度。

  • pgweb : 基于 WebPostgreSQL 数据库浏览工具

  • prep : 无需更改代码使用已准备好的SQL 语句的库

  • pREST : 为 PostgreSQL数据库提供 RESTful API

  • rwdb : rwdb为多个数据库服务器的设置提供读取复制功能。

  • vitess : vitess 提供了能够使大型 web服务 MySQL 数据库的扩展变得更加容易的服务器及工具

    SQL 查询语句构建库

  • buildsqlx : 针对PostgreSQLGo数据库查询构建库。

  • dbq : Go的数据库操作库。

  • Dotsql : Go语言库,帮助你将 sql 文件保存在一个地方并且方便的取用

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

  • godbal : Go的数据库抽象层(dbal)。支持SQL构建器,并能轻松获得数据库结果。

  • goqu : 地道的 SQL 语句创建器和查询库

  • gosql : 具有更好的空值支持的SQL查询生成器。

  • igor : PostgreSQL 的抽象层,支持高级功能以及类Gorm 的语法

  • jet : 在Go中编写类型安全的SQL查询框架,能够轻松地将数据库查询结果转换为所需的任意对象结构。

  • mpath : 用于 SQL记录的MPTT (Modified Preorder Tree Traversal) 包 - 实物化路径的实现

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

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

  • qry : 从带有原始SQL查询的文件中生成常量的工具。

  • sq : 适用于Go的类型安全SQL构建器和结构映射器。

  • sqlf : 快速的SQL查询构建器。

  • sqlingo : 在Go 中构建 SQL 的轻量级 DSL

  • sqrl : SQL查询创建器,是 Squirrel 的一个分叉版本,进行了性能方面的优化

  • Squalus : Go SQL包的薄层,使其更容易执行查询。

  • Squirrel : 一个帮助你构建 SQL 查询的库

  • xo : 基于已知的数据库表或自定义查询生成地道的Go语言代码,支持 PostgreSQL, MySQL, SQLite, Oracle, 以及 Microsoft SQL Server.


数据库驱动

连接和操作数据库工具

  • 关系型数据库
    • avaticaApache Phoenix/Avatica SQL驱动
    • bgc : 数据库连接工具包,用于通过 Go语言访问BigQuery
    • firebirdsql : Firebird RDBMS SQL驱动
    • go-adodb : Microsoft ActiveX对象数据库驱动
    • go-mssqldb : 适用于Go的Microsoft MSSQL驱动。
    • go-oci8 : Oracle驱动
    • go-sql-driver/mysql : Go 语言 MySQL驱动
    • go-sqlite3 : Go 语言的 SQLite3驱动
    • gofreetds : Microsoft MSSQL驱动。 FreeTDS的go语言封装
    • FreeTDS : Microsoft MSSQL驱动。是FreeTDS的Go封装器。
    • goracle : 用于 GoOracle驱动程序,使用 ODPI-C 驱动程序。
    • pgx : PostgreSQL 驱动,支持比 database/sql更多的特性
    • pq : 用于database/sqlPure Go Postgres驱动。
    • Sqinn-Go : 纯Go的SQLite驱动。

  • NoSQL数据库
    • aerospike-client-go : Go语言的Aerospike客户端。
    • arangolite : ArangoDB的轻量级golang驱动
    • asc : 用于Aerospike for go的数据存储连接。
    • dynago : DynagoDynamoDB 的客户端。
    • forestdb : ForestDBGo语言封装
    • go-couchbase :Go语言Couchbase客户端
    • go-pilosa : 用于Pilosa的Go客户端库。
    • go-rejson : RedislabsReJSON模块的 Golang 客户端,使用 Redigo golang客户端。在redis中轻松地将结构体作为JSON对象进行存储和操作。
    • gocb : Couchbase Go官方SDK。
    • gocql : Apache Cassandra 的 Go 语言驱动
    • godis : 由 golang 实现的redis 客户端,灵感来自 jedis
    • godscache : Google Cloud Platform Go Datastore包的封装器,使用memcached增加缓存。
    • gomemcache : Go编程语言的memcache客户端库。
    • gorethink : RethinkDB的Go语言驱动。
    • goriak : Riak KVGo语言驱动
    • mgm : 用于 Go 的基于MongoDB 模型的ODM(基于官方 MongoDB 驱动程序)
    • mgo :MonGoDB 驱动,通过简单的 API 现了丰富的、经过测试的特性,这些 API 遵循 Go 语言的习惯
    • mongo-go-driver : Go语言的官方MongoDB驱动。
    • neo4j : Neo4j Rest APIGo 语言接口
    • Neo4j-GO : Go 语言实现的 Neo4j REST客户端
    • neoism : Go 语言 Neo4j 客户端
    • qmgo : Go的MongoDB驱动。它基于官方的MongoDB驱动,但和Mgo一样更容易使用。
    • redeo : RedigoRedis数据库的Go客户端。
    • redigo : RediGoRedis 数据库的Go 语言客户端.
    • redis : 兼容Redis协议的 TCP 服务器/服务.
    • xredis : 类型安全的、可定制的、简洁易用的 Redis 客户端

  • 搜索引擎和文本数据库
    • bleve : 现代文本索引库
    • elastic : Go 语言的 Elasticsearch客户端
    • elasticsqlsql 转换为 elasticsearch dsl
    • elastigo : Elasticsearch客户端库
    • go-elasticsearch : Go的官方Elasticsearch客户端。
    • goes : 用于和 Elasticsearch 交互的库
    • riot : Go开源,分布式,简单高效的搜索引擎。
    • skizze : 概率数据结构服务和存储。
  • 多个后端:
    • cachego : Golang Cache组件,支持多个驱动。
    • cayley : 支持多个后端的图形数据库。
    • dsc : SQL、NoSQL、结构化文件的数据存储连接。
    • gokv : 为go(Redis、Consul、etcd、bbolt、BadgerDB、LevelDB、Memcached、DynamoDB、S3、PostgreSQL、MongoDB、CockroachDB等)提供简单的键值存储抽象和实现。

日期和时间

用于处理日期和时间的库

  • carbon : 简单的时间扩展程序,有很多有用的方法,是PHP Carbon库的接口
  • cronrange : 解析Cron风格的时间范围表达式,检查给定时间是否在任何范围内。
  • date : 增强了Time的功能,用于处理日期、日期范围、时间跨度、时间段和日期时间。
  • dateparse : 在不知道格式的情况下解析日期。
  • durafmt : 持续时间格式化
  • feiertage : 一组计算德国公共假期的函数,比如复活节、感恩节等
  • go-persian-calendar : - 太阳历
  • go-str2duration : 将字符串转换为持续时间。支持time.Duration返回字符串等。
  • go-sunrise : 计算指定地点的日出和日落时间。
  • go-week : 处理星期的库
  • iso8601 : 有效地解析ISO8601日期时间,而无需使用regex
  • kair : 日期和时间 - Golang格式化库。
  • now : Now 是一个 Go 语言的时间工具集
  • NullTime : -时间可以是 NULL 的库
  • strftime : C99兼容的strftime格式化器。
  • timespan : 用于与时间间隔交互,定义为开始时间和持续时间
  • timeutil : 为 Go 语言时间包扩展了有用的功能,例如时间间隔和格式化
  • tuesday : Ruby兼容的Strftime函数。