6 万 Star! Go 语言资源大全(中)

2023-05-26 0 311

接上篇

函数式编程

fpGo :   Golang中的单项式函数式编程功能fuego :  Go中实验室的函数式编程。go-underscore :  Go函数式集合工具。

游戏开发

Azul3D :  Go语言编写的 3D 游戏引擎Ebiten :  Go 语言编写的简单的 2D 游戏库engo :  EnGo是一个开源的2D游戏引擎,遵循实体-组件-系统范式g3n :  Go 3D游戏引擎。go-astar :  A*路径查找算法的Go实现。go-sdl2 :  Simple DirectMedia Layer 的 Go封装。go3d :  专注性能的 2D/3D 数学库gonet :  Go语言实现的游戏服务器框架goworld :  可扩展的游戏服务器引擎。Leaf :  轻量级游戏服务器框架nano :  基于golang的轻量级、设施、高性能的游戏服务器框架。Oak :  go游戏引擎。Pitaya :  可扩展的游戏服务器框架,支持集群,并通过C SDK为iOS、Android、Unity等提供客户端库。Pixel :2D 游戏引擎库prototype :   跨平台(Windows/Linux/Mac)库,可利用最小的API创建桌面游戏。raylib-go :   raylib的 Go 语言接口,简单、易用的用于学习游戏编程的库raylib :  raylib的Go绑定,一个简单易用的电子游戏编程学习库。termloop :  终端游戏引擎,基于 Termboxtile : 面向数据和缓存友好的 2D 网格库 (TileMap)。

代码生成与泛型

efaceconv :  代码生成工具,用于高效的将 interface{}转换为不可变类型,并且不需要进行任何内存分配gen :  代码生成工具,用于提供类似泛型的功能generis :  提供泛型、自由形式宏、条件编译和 HTML 模板化的代码生成工具。go-enum :   从代码注释中生成enums代码。go-linq :  类似.NET LINQ的Go查询方法。go-xray :  使反射的使用更加简单的助手。goderive :  从输入类型导出函数。gotype :  Golang源代码解析,用法类似于 reflect 包。GoWrap :  使用简单的模板为 Go接口生成装饰器。interfaces :  命令行工具,用于生成接口定义jennifer :   不适用模板生成任意 Go 语言代码pkgreflect :  用于包作用域反射的 Go语言预处理器typeregistry :   用于动态创建类型的库。

位置信息与地理GEO处理库

geocache :  内存缓存,适用于基于地理位置的应用。geoserver :  用于通过GeoServer REST API操纵GeoServer实例的Go包。gismanager :   将你的GIS数据(矢量数据)发布到PostGIS和Geoserver的库。mbtileserver :  简单的基于Go的服务器,用于存储mbtiles格式的地理信息。osm :   用于读取、写入和处理OpenStreetMap数据和API的库。pbf : OpenStreetMap PBF golang编码器/解码器。S2 geojson :   将geojson转换为S2单元格,并在地图上演示一些S2几何特征。S2 geometry :  Go中的S2几何库。Tile38 :  具有空间索引和实时地理围栏的地理位置数据库。WGS84 :  坐标转换和变换的库(ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM)。c4go :   将C代码转换为go代码。f4go :   将FORTRAN 77代码转为 Go 代码。gopherjs :  把Go 编译为JavaScript.llgo :  基于 LLVM 的Go 语言编译器tardisgo : Golang转换为 Haxe 进而转换为 CPP/CSharp/Java/JavaScript的编译器.

Goroutines

goroutines的管理和使用

ants : 高性能和低消耗的goroutine池。artifex :   Golang的简单内存作业队列,使用基于worker的调度策略。async :  Go的另一个同步库(Future, Promise, Locks)。async : 安全的异步函数执行的方式,支持在出现pannic的情况下恢复它们。breaker :   采用了一种可以使执行流可中断的灵活的机制的包。channelify :  将你的函数转化为返回管道,以实现简单而强大的并行处理。conexec :   一个并发工具包,帮助你以一种高效和安全的方式并发执行函数。它支持指定整体超时以避免阻塞,并使用goroutine池来提高效率。cyclicbarrier :   – golang的CyclicBarrier。go-floc :  轻松编排 Go语言协程go-flow :  控制Go语言协程的执行顺序go-tools/multithreading : 使用这个轻量级的库和简单的API来管理goroutine 池。go-trylock :  支持 Golang 的读写锁的 TryLock.go-waitgroup :  – 类似 sync.WaitGroup的错误处理和并发控制。goccm :  Go并发管理包,限制了允许并发运行的 goroutine的数量gohive :  高性能且易于使用的goroutine池。gollback :   异步简单函数工具,用于管理闭包和回调的执行goworker :  Goworker是一个基于 Go 语言的后台workergowp :  – gowp 是限制并发量的goroutine池。gpool :   管理一个可调整大小的上下文感知的goroutine池,并以这种方式来约束并发量。grpool :  轻量级Goroutine池。hands :  用于控制多个goroutine的执行和返回策略的进程控制器。Hunch :  Hunch提供的功能有。All、First、Retry、Waterfall等功能,让异步流控制更加直观。kyoo :  提供了一个无限的作业队列和并发的工作池。neilotoole/errgroup : sync/errgroup的替代方案,限于N个worker goroutine池。nursery :  Go中的结构化并发oversight :  versight是 Erlang监督树的完整实现。parallel-fn :  并行执行函数。pond :   在 Go 中编写的最小化和高性能的 goroutine工作池。pool :  便于goroutine处理和取消的有限的消费者goroutine池或无限的goroutine池,queue :  类似于sync.WaitGroup的队列包。帮助你控制和等待goroutine的执行,比如等待所有goroutine的结束等等。routine :   利用context的go routine实现。semaphore :  基于管道和上下文的加锁/解锁操作。semaphore :  基于CAS的快速可调整大小的semaphore实现(比基于管道的semaphore实现更快)。stl :  基于软件事务性内存(STM)并发控制机制的软件事务性锁。threadpoolGolang线程池的实现。tunny :  Go语言协程池worker-pool :  Go简单的异步worker池。workerpool :   用于限制任务执行的并发性的goroutine缓冲池。

GUI

app :  使用Go, HTML 和 CSS 进行应用程序开发的库, 支持MacOS, Windows。fyne :   基于Material Design为Go设计的跨平台本地GUI。支持 Linux, macOS, Windows, BSD, iOS` 和 Android.go-astilectron :  使用GO和HTML/JS/CSS(由Electron提供支持)构建跨平台GUI应用程序go-gtk :  GTK的Go绑定。go-sciter :   Sciter 的Go 语言接口,支持现代 GUI 程序开发的、嵌入式 HTML/CSS/脚本引擎。具有跨平台特性。gotk3 : GTK3的Go语言接口gowd :  使用Go, HTML, CSS和NW.js 语言进行快速、简单的桌面UI开发。具有跨平台特性qt : Qt的Go语言接口 (支持 Windows,macOS,Linux,Android,iOS,Sailfish OS, Raspberry Pi)ui :  跨平台的原生 GUI 库Wails :  使用内置的 HTML 渲染器。walk :  windows应用程序开发工具包webview :   支持双向JavaScript绑定的跨平台 webview 窗口库(Windows,macOS,Linux)。go-appindicator :  libappindicator3 C库的Go绑定。gosx-notifier :   OSX 桌面提醒库mac-activity-tracker : OSX 库,用于通知机器上的任何(可插拔)活动。mac-sleep-notifier :  – golang中的OSX睡眠/唤醒通知库。robotgo :   跨平台GUI自动化工具,可以控制鼠标、键盘及其他设备systray :  跨平台的Go 语言库,用于在桌面提醒区域放置按钮及菜单trayhost :  跨平台的 Go 语言库,用于在主机系统任务条区域放置按钮及菜单

硬件

与硬件交互的库、工具

请参考 go-hardware

Images 图像处理

bild :  汇集了使用 Go语言编写的图像处理算法bimg :   利用libvips进行快速高效的图像处理cameron :  Go的头像生成器。canvas :  将矢量图形转换成 PDF、SVG或光栅化图像。darkroom :   图像代理,具有可更改的存储后端和图像处理引擎,注重速度和弹性。draft :  使用简单的YAML语法为GraphViz生成高级微服务架构图。geopattern :  从字符串创建优美的图样gg :  使用Go编写的 2D渲染程序gift :    图像处理过滤器包gltf :  高效且强大的glTF 2.0读取器、写入器和验证器。go-cairo :   cairo 图形库的 Go语言接口go-gd :  GD库的Go 语言接口go-nude :  使用 Go 语言进行裸替检测go-opencv :  OpenCV 的 Go语言接口go-webcolors :  webcolors 库的Go语言接口gocv : 使用OpenCV 3.3+ 的计算机视觉的 Go 包。goimagehash :  Go感知图像哈希包。goimghdr :  imghdr模块为 Go 确定文件中包含的图像类型。govatar :   用于生成有趣头像的库和命令行工具。gridder :   基于网格的2D图形库。image2ascii :   将图像转换为ASCII码。imagick :   ImageMagick的 MagickWand C语言API 的 Go语言接口imaginary :  快速且简单的 HTTP微服务,用于图像缩放imaging :  简单的Go图像处理包。img :  图像操作工具精选集ln : 3D 图线艺术渲染mergi :   用于图像处理的工具和Go 库(合并、裁剪、调整大小、水印、动画)。mort :  用Go编写的存储和图像处理服务器。mpo :  MPO 3D 照片解码与转换工具.picfit :  一个使用 Go语言编写的图片缩放服务器pt :  光线追踪引擎resize :  使用 Go语言编写的具有常见差值功能的图片缩放工具rez :  纯 Go 及SIMD实现的图像缩放库smartcrop :   – 为任意图片进行剪裁的工具steganography :  用于LSB隐写的纯Go库。stegify :  用于LSB隐写的Go工具,能够隐藏图像中的任何文svgo :  用于生成 SVG的Go语言库tga :  tga是一个TARGA图像格式解码/编码器

物联网(IOT)

connectordb :  针对iot的开源物联网平台devices :  管理物联网设备的套件库eywa :   Eywa 是一个持续追踪所有连接设备的连接管理器flogo :FloGo是一个用于物联网 Edge App及集成的开源框架gatt :  Gatt是一个用于创建低功耗蓝牙外设的库gobot : Gobot 是一个用于机器人,物理计算以及物联网的库huego :  适用于 Go的广泛的 Philips Hue客户端库。iot :   IoT是实现Google IoT Core设备的简单框架。mainflux :  工业物联网消息传递和设备管理服务器。periph :  外设I/O,用于连接低级板卡设施。sensorbee :   轻量级物联网流处理引擎

作业调度

clockwerk :  使用简单、流畅的语法来调度周期性作业的Go包。clockwork :  Go中简单直观的作业调度库。go-cron :  Go的简单Cron库,它可以在不同的时间间隔执行闭包或函数,主要用于web应用程序和长期运行的守护进程。go-quartz :  简单、零依赖的Go调度库。gocron : 简单流畅的Go作业调度。这是·jasonlvhit/gocron·`的一个积极维护的fork.gron :   使用简单的 Go API 定义基于时间的任务,Gron的调度器将相应地运行它们。JobRunner :  智能且功能丰富的cron任务调度器,内置任务队列和实时监控。jobs :  持久而灵活的后台作业库。leprechaun :  工作调度器,支持webhooks、crons和经典调度系统。scheduler : Cronjobs调度系统。

JSON

ajson :  golang实现的支持JSONPath的抽象JSON格式解析库。dynjson :  向客户端提供自定义的JSON格式的动态API库ej :   从不同的数据写入和读取JSON的库。epoch :  包含用于将Unix时间戳,epoch转换为JSON中的内置时间类型的范的json响应错误。go-respond :  用于处理常见HTTP JSON响应的Go包。gojq :  Golang中的JSON查询库。gojson :  从示例 JSON自动生成 Go结构体定义的库。JayDiff :  用Go编写的JSON差异比较工具。jettison :  用于Go的高性能、无反射的JSON编码器。JSON-to-Go :   将JSON转换为Go结构json2go :  高级JSON到Go结构的转换。提供能够解析多个JSON文档并创建适合所有JSON文档的结构的包。jsonapi-errors :  基于JSON API错误引用的Go语言封装。jsonf :  用于高亮格式化和结构查询JSON的控制台工具。jsongo :  Fluent API,使其更容易创建Json对象。jsonhal :  ,用于将自定义的结构体marshal为兼容HAL的JSON response的库。jzon :  兼容标准json库的JSON库。kazaam :   转换任意json文档的的API库。mapslice-json : 用于有序地对JSON中的map结构进行marshal/unmarshal。mp :  简单的 cli电子邮件解析器,能够接受标准输入并输出JSON日志

Logging 日志库

distillog :  分级日志记录库(可以把它想象成 stdlib + log levels)。glg : 简单、快速、分级的日志库glo :  分级记录日志的库glog :  Go的分级日志go-cronowriter :  对日志文件基于当前日期和时间进行自动循环写入的库,类似 cronolog.go-log :  一个包含rack traces、对象转储和可选时间戳的日志库。go-log :   简单且可配置的go日志库,包括分级、格式化和多项输出的特性。go-log :  日志库支持级别和多处理程序。go-log :  Go中的Log4j实现。go-logger :  支持日志分级的简单的日志工具gologger :  简单易用的日志库,可以在彩色控制台、文件或 Elasticsearch中记录gomol :  支持多种输出,结构化的日志模块,可以扩展它的输出gone/log :  快速、可扩展、全功能、兼容标准库的日志库httpretty :  将常规的 HTTP 请求漂亮地打印在终端上用于调试(类似于 http.DumpRequest)。journald :  systemd 日志的本地日志API的 Go实现。kemba :  受debug 启发的小型调试日志工具,非常适合CLI工具和应用程序。log :   O(1)复杂度的日志系统,允许你将一个日志连接到多个输出(例如 stdout、文件和一个 TCP 连接)。log :   Go的结构化日志包。log :  简单、可配置、可扩展的Go结构化日志库。log :  结构化日志接口。log-voyage :用golang编写的全功能日志库。log15 :  简单、强大的Go日志记录。logdump :  用于多级日志记录的软件包。logex : Golang日志库,支持跟踪和级别,由标准日志库封装。logger :  日志库。logmatic :  Golang的彩色日志记录器,具有动态日志级别配置功能。logo :  Golang的日志记录库,可配置不同的写入器。logrus :  支持结构化的日志工具.logrusiowriter :  使用 logrus logger 的 io.Writer 实现。logrus : Go的结构化日志记录器。logrusly :  logrus插件,用于将错误发送到Logglylogur :  日志记录接口和日志记录最佳实践的整合,它对诸多知名库如logrus、go-kit log、zap , zerolog等的功能进行了集成logutils :  对 Go语言标准日志工具进行了扩展,使其更好用logxi :  十二要素 app 日志工具,非常快速。lumberjack :  简单的循环日志工具。mlog :  简单的日志模块,可以分5级并有一个可选的循环日志文件记录功能,支持 stdout/stderr 输出.onelog :  Onelog是一个简单但非常高效的JSON日志库。它是目前所有场景下最快的JSON日志器。同时,它也是所需最少内存分配的库。ozzo-log :   高性能日志库,支持日志分级、分类及过滤。可以将过滤后的信息发送到不同的目的地(例如: 控制台、网络、邮箱).phuslu/log :  – 结构化日志系统。rollingwriter :   RollingWriter是一个具有自动轮转功能的io.Writer实现,它有多种策略来提供日志文件旋转。seelog :  灵活的、解耦的、格式化的日志库spew :  – 为 Go语言的数据结构实现了一个整洁的打印功能,有助于调试sqldb-logger :  -用于Go SQL数据库驱动的日志记录器,无需修改现有的*sql.DB标准用法。stdlog :   Stdlog是一个面向对象的库,提供了分级日志功能,对于定时任务很有用.tail :  这个 Go语言软件包力争模拟 BSD tail的功能xlog :  插件架构以及灵活的日志系统,具有日志等级控制,多日志目标以及自定义日志格式功能xlog :  结构化日志库zap :  快速的、结构化的、分级的日志库zerolog :  零内存分配 的JSON日志库.

机器学习

bayesian :  贝叶斯分类器CloudForest :  纯 Go语言编写的快速、灵活、多线程决策树eaopt :  进化优化库。evoli :   遗传算法和粒子群优化库。fonet :  用Go编写的深度神经网络库。go-cluster :   k-modes和k-prototypes聚类算法的Go实现。go-deep :  用Go编写的功能丰富的神经网络库。go-fann :   快速人工神经网络库(FANN)的 Go 语言借口.go-galib :  Go语言编写的遗传算法库go-pr : Go语言模式识别库gobrain :  用go语言编写的神经网络。godist :   各种概率分布以及相关方法库。goga :  Go 语言遗传算法库GoLearn : Go语言通用机器学习库golinear : liblinear 库的 Go语言接口GoMind :   Go 中的一个简单的神经网络库。goml :  即时go语言机器学习库gonet :  Go的神经网络。Goptuna :  用Go编写的黑盒函数的贝叶斯优化框架。一切都将被优化。goRecommend :  Go 语言推荐算法库gorgonia :  基于图的计算库,类似于 Theano。提供了一些原型用于构建各种个样的机器学习和神经网络算法gorse :  用Go编写的基于协作过滤的离线推荐系统后台。goscore :  用于 PMML 的 Go 评分API。gosseract :    用于OCR(光学字符识别)的Go包,使用Tesseract C++库。libsvm :  libsvm的Go 语言版本,基于 LIBSVM 3.14.neat :  即插即用的并行Go 语言框架,用于增强拓扑神经网络 (NEAT).neural-go :  Go语言实现的多层感知神经网络,通过反向传播算法进行训练.ocrserver :   简单的OCR API服务器,很容易被Docker和Heroku部署。onnx-go :  Open Neural Network Exchange (ONNX)的Go接口。probab :  概率分布函数。贝叶斯推理。用纯Go编写。randomforest :   简单易用的 Go随机森林库。regommend :   推荐系统及协同过滤引擎shield : go语言实现的贝叶斯文本分类器,具有灵活的标记器和存储后端。tfgo :   易于使用的Tensorflow “ go语言封装:简化了官方Tensorflow Go的使用。Varis : Golang神经网络。

消息系统

ami :   基于Redis集群可靠队列的Go客户端。APNs2 :   go语言实现的基于HTTP/2苹果推送通知提供服务,可以向iOS、tvOS、Safari和OSX应用程序发送推送通知Asynq :   建立在 Redis 之上,为 Go 提供的简单、可靠、高效的分布式任务队列,。Beaver :  实时消息服务器,用于在网络和移动应用中构建可扩展的应用内通知、多人游戏、聊天应用。Benthos : 在一系列协议之间建立消息流go代码库Bus :  用于内部通信的简约型消息总线实现。Centrifugo :  实时消息服务器Commander :   一个高级事件驱动库,支持消费者/生产者模式,支持各种消息系统,如Apache Kafka。Confluent Kafka Golang Client   是Confluent为Apache Kafka和Confluent Platform开发的Golang客户端。dbus : D-Bus的 Go 语言接口drone-line :  通过软件包,docker或是 Drone CI来发送 Line 通知emitter : 通过Go语言的方式发送事件消息,可以使用通配符,断言,取消发送等优秀特性。event :  观察者模式的go语言实现EventBus :   轻量级事件库,支持异步gaurun-client :  Go 语言编写的 Gaurun 客户端Glue :  健壮的 Go和 Javascript Socket 库 (可以用来替代Socket.io).go-mq :  具有声明式配置的RabbitMQ客户端。go-notify :  freedesktop通知规范的本地实现go-nsq :   NSQ官方 Go 语言库go-res :   用于构建 REST/实时服务的包,使用NATS 和 Resgate实现客户端无缝同步。go-socket.ioGo 语言的 socket.io库 ,一个实时应用框架.go-vitotrol :  Viessmann Vitotrol服务的Go 语言客户端Gollum :  一个n:m 的多路复用器,从不同的源汇聚消息并向目标进行广播golongpoll : HTTP 长轮询服务器库,让 web 发布与订阅变的更简单.gopush-cluster :  Gopush-cluster 是一个Go语言实现的支持集群的comet服务(支持websocket和tcp协议)gorush  通知推送服务器,使用 APNs2 和 GCM 。gosd :  用于调度何时向通道发送消息的库。guble :  使用通知推送(Google Firebase Cloud Messaging, Apple Push Notification services, SMS)、websockets 、REST API的消息服务器。提供了分布式操作和消息持久化特性hub :   用于 Go 应用程序的消息/事件汇聚,使用发布/订阅模式,支持像 rabbitMQ 的使用模式。jazz :  一个简单的RabbitMQ抽象层,用于队列管理以及消息的发布和消费。machinery :  异步任务队列,基于分布式消息处理mangos :   纯 Go语言实现的 Nanomsg (“Scalable Protocols”)melody :  用于处理websocket会话的简约框架,包括广播和自动ping/pong处理。Mercure :   使用Mercure协议(建立在Server-Sent Events之上)来调度服务器发送的更新的代码库。messagebus :  messagebus是一个Go简单的异步消息系统,用于事件源、CQRS、DDD等场景NATS Go Client :   原生的 oplog/replication系统,用于 REST APIs场景nsq-event-bus :  针对 NSQ 的topic和channel进行了简单的封装oplog : 用于 REST API场景的通用oplog/copy系统。pubsub :  简单的 pubsub软件包rabbus :  amqp交换队列的简易封装。rabtap :  -RabbitMQ 瑞士军刀 cli应用。RapidMQ : RapidMQ是一个轻量级,可靠的本地消息队列管理库redisqueue :   redisqueue 提供了一个使用 Redis流的队列,可以用于生产者和消费者模式。rmqconn :   RabbitMQ Reconnection。amqp.Connection 和 amqp.Dial的go语言封装。允许在连接中断时进行重新连接,然后再强制调用关闭方法。sarama :  用于 Apache Kafka的库Uniqush-Push :  基于 Redis 的统一推服务,用于服务器端向移动客户端推送消息zmq4 :  ZeroMQ version 4的 GO语言接口。也有适用于version 3 及 version 2 的

Microsoft Office

unioffice :  用于创建和处理Office Word (.docx)、Excel (.xlsx)和Powerpoint (.pptx)文档的纯go库。

EXCEL

excelize :  用于读写 Microsoft Excel™ (XLSX) 文件的 Golang库go-excel :  用于读取类似数据库形式的excel表格。goxlsxwriter :   go语言libxlsxwriter封装, 用于编写 XLSX (Microsoft Excel) 文件。xlsx :  用于在 Go 程序中读取最新版 Microsoft Excel的库xlsx :  在Go程序中快速、安全地读取/更新现有 Microsoft Excel文件的库。

其他杂项

依赖性注入

alice :  Golang的依赖注入容器container :  功能强大的 IoC容器,具有流畅且易于使用的界面。di :  Go编程语言的依赖注入容器。dig :  基于反射的Go依赖注入工具包。dingo :  基于 Guice 的 Go 依赖注入工具包。fx :  基于 Go的依赖注入应用框架(建立在 dig 的基础上)。gocontainer : 简单的依赖注入容器。goioc/di :  Spring启发的依赖注入容器。linker :   基于反射的依赖注入和反转的控件库,支持组件生命周期。wire :  Golang运行时依赖注入。

项目结构

用于构建项目的非官方模式集。

cookiecutter-golang :Go应用程序模板,用于按照生产最佳实践快速启动项目。go-sample :   一个带有真实代码的 Go 应用项目布局示例。go-todo-backend : Go Todo Backend示例,使用模块化的项目布局,针对微服务等场景。golang-standards/project-layout :  -Go 生态系统中常见的历史和新兴项目布局模式集。modern-go-application :   应用现代实践的Go 应用程序模板和示例。scaffold :  Scaffold 生成一个入门的 Go 项目布局。让您专注于业务逻辑的实现。

字符串处理

go-formatter :  实现大括号{}格式字符串的替换字段。gobeam/Stringy :  字符串操作库,用于将字符串转换为驼峰、小驼峰等格式strutil :   字符串实用工具。xstrings :  从其他语言移植过来的字符串函数集合。

暂未分类

这些库被放在这里是因为其他类别似乎都不适合。

anagent : 简约、可插拔的Golang evloop/timer处理程序,具有依赖注入功能。antch :  一个快速、强大、可扩展的网络爬行和抓取框架。archiver :  用于制作和解压.zip和.tar.gz文件的库和命令。autoflags : Go包,用于从结构域中自动定义命令行标志。avgRating :  – 基于Wilson Score Equation计算平均得分和评分。banner :   在你的Go应用程序中添加漂亮的横幅。base64Captcha :  Base64captch支持数字、数字、字母、算术、音频和数字来生成字母验证码。battery :  跨平台电源信息库bitio :  高度优化的比特级读写browscap_go :   Browser Capabilities Project的GO 语言库captcha :  包 captcha 为验证码的生成提供了一个简单易用的 API。conv :  包conv提供了跨Go类型的快速和直观的转换。datacounter : Greaders/writer/HTTP.ResponseWriter计数器faker :  Go的随机伪造数据和结构生成器。ffmt : 美化数据显示。gatus :  自动化的服务健康仪表板。ghorg :  快速将整个org/users 仓库克隆到一个目录中 – 支持GitHub、GitLab 和 Bitbucket。go-commons-pool : Golang 的通用对象池。go-openapi :  解析和使用 open-api 模式的软件包集合。go-resiliency :  golang的弹性模式。go-unarr :  RAR、TAR、ZIP 和7z文件的解压库。gofakeit :   用go编写的随机数据生成器。gommit :  分析git提交消息,确保它们遵循定义的模式。gopsutil :  跨平台库,用于检索进程和系统利用率(CPU、内存、磁盘等)。gosh :    提供Go 统计处理程序、结构、测量方法。gosms :  你本地的SMS网关,可以用来发送 SMSgotoprom : 提供Go统计处理程序、结构、测量方法gountries :  一个用来展示国家及其行政区划数据的库health :  简单易用、可扩展的服务健康检查库healthcheck :  针对RESTful并发服务健康检查HTTP处理程序。hostutils :  用于打包和解压FQDNs列表的golang库。indigo :  使用Sonyflake和Base58编码的分布式唯一ID生成器。lk :  简单的 `golang 授权库。llvm :  – 用于在纯Go中与LLVM IR交互的库。metrics :   用于度量工具和Prometheus 指标的库。morse :   用于转换摩尔斯代码的库。numa :   – NUMA是一个用 Go 编写的实用程序库。它帮助我们编写一些NUMA-AWARED代码。pdfgen :   从Json请求中生成PDF的HTTP服务。persian :  用go编写的波斯语实用程序。sandid :  地球上的每一粒沙子都有自己的ID。shellwords :  Golang 库,用于根据UNIX Bourne shell的单词解析规则来处理字符串。shortid :  分布式生成超短的、唯一的、非序列的、URL友好的ID。shoutrrr :  提供轻松访问各种消息服务的通知库,如slack, mattermost, gotify和smtp等。stateless :  用于创建状态机的库stats :  监控 Go 内存状态及系统状态,通过UDP进行数据发送turtle :  Go的Emojis。url-shortener :   一个现代的、强大的、健壮的、支持mysql的URL短链的微服务。VarHandler :  生成模板化的http输入和输出。xdg :  Go中实现的FreeDesktop.org (xdg)规范。xkg :  键盘抓取器

自然语言处理

detectlanguage : 语言检测API Go客户端。支持批量请求、短语或单字语言检测。getlang :   快速自然语言检测包。go-i18n :  ,用于处理本地化文本 的软件包及相关工具go-localize :  简单易用的i18n(国际化和本地化)引擎 – 用于翻译本地化字符串。go-mystem :  Yandex.Mystem的CGo 接口, Yandex.Mystem 是一个俄语词汇形态学分析器go-nlp :  在进行自然语言工作时用于处理离散概率分布一些工具,以及其他的一些有用的工具go-pinyin :   汉字到汉语拼音转换器。go-stem :  波特词干算法的一个实现go-unidecode :  Unicode 文本音译为ASCII 文本go2vec :  利用 Go语言读取和处理 word2vecgojieba : 结巴分词的 Go语言实现的 jieba ,结巴分词是一个用于中文的分词算法golibstemmer :  snowball libstemmer 库的 Go语言接口,包括了对 porter 2的支持gosentiwordnet :  libstemmer库的Go绑定。gotokenizer :  基于Golang的字典和 Bigram 语言模型的分词器。(现在只支持中文分割)gounidecode : Go语言的 Unicode 直译器 (通常称之为 unidecode)govader : VADER Sentiment Analysis 情感分析的Go实现gse :   Go高效的文本分割;支持英语、中文、日语和其他语言。icu :  icu4c C库的 CGo接口,包括了检测和转换函数。保证了version 50.1版本的兼容性iuliia-go :  以各种可能的方式翻译西里尔语→拉丁语。kagome :   用纯Go编写的JP形态分析器。libtextcat :   libtextcat C库的CGo接口。保证了version 2.2版本的兼容性MMSEGO :   Go 语言实现的 MMSEG(一个中文分词算法)MMSEG :  MMSEG的GO实现,是一种中文分词算法。nlp :  从字符串中提取值,并用nlp填充结构。nlp :  支持LSA(Latent Semantic Analysis)的Go自然语言处理库。paicehusk :Go语言实现的 Paice/Husk 词干算法petrovich :  Petrovich 是一个将俄语名称转变成给定语言的库。porter :  Martin Porter实现的C语言版本的Porter词干算法的Go 语言接口。porter2 :  非常快速的 Porter 2 stemmer.prose :  文本处理库,支持词语切分、词性标记、命名实体提取等功能RAKE.go :   快速自动关键字提取算法(Rapid Automatic Keyword Extraction:RAKE)的 Go 语言接口segment :  用于进行 Unicode 文本分割的库,实现了Unicode Standard Annex #29 中描述的功能sentences :  语句标记器:将文字段落转换为语句列表shamoji : shamoji 是一个Go语言编写的词过滤软件包snowball : Snowball native分词器的Go语言接口,提供了分词提取的功能 .stemmer :  Go 语言分词器软件包,包括了英语和德语分词器textcat :  基于 n-gram的 Go 语言文本分类软件包,支持utf-8 和原始文本transliterator :   提供单向字符串翻译,支持特定语言的翻译规则whatlanggo :  Go语言的自然语言检测包。支持84种语言和24种书写 (如拉丁,西里尔等书写系统)。when :  英语、俄语的自然语言日期、时间表达解析器。

网络相关库

arp :  遵循 RFC 826标准实现了ARP协议,.buffstreams : 基于 TCP的 简单易用的protocolbuffer 数据流,canopus : CoAP客户端/服务器实现 (RFC 7252)cidranger : Go的快速IP、CIDR查找库。dhcp6 : dhcp6 实现了一个DHCPv6服务器,遵循RFC 3315标准.dns :   用于处理DNS 的Go 语言库ether :  跨平台Go 语言库,用于发送和接收以太帧ethernet :  ethernet实现了IEEE 802.3 Ethernet II帧以及IEEE 802.1Q VLAN标签的组装和剥离.fasthttp : asthttp 是一个快速的HTTP实现,比net/http1的性能快10倍fortio :  负载测试库和命令行工具,提供先进的echo服务器和web用户界面。允许指定设定每秒钟查询的负载,记录延迟直方图和其他有用的统计数据,并将其绘制成图表。ftp :ftp 实现了一个FTP 客户端,遵循 RFC 959 标准gaio :  在proactor模式下为Golang提供高性能的异步io网络。gev :  一个轻量、比标准库更快的基于Reactor 模式的非阻塞TCP网络库,支持自定义协议,可以轻松快速搭建高性能服务器。gmqtt : Gmqtt是一个灵活、高性能的MQTT代理库,它完全实现了MQTT 协议 V3.1.1版本gnet : gnet是用纯Go编写 的一个高性能、轻量级、非阻塞、事件驱动的网络框架,gNxI :  使用gNMI和gNOI协议的网络管理工具集合。go-getter :   一个用于通过 URL 从多种源下载文件或目录的 Go 语言库go-powerdns :  Golang的PowerDNS API绑定。go-stun : Go语言实现的STUN客户端 (参考RFC 3489及RFC 5389标准).gobgp :  Go语言实现的BGPgohooks :  GoHooks 使得从Go应用程序中发送和消费安全的web-hooks非常容易。该库的实现受Spatie的Laravel Webhook客户端和服务器的启发。golibwireshark :Golibwireshark 使用libwireshark 库来解析pcap 文件并且分析数据gopacket : 用于报文处理的库gopcap :  libpcap的 Go 语言封装goshark :Goshark使用tshark 来对IP报文进行解码并创建数据结构用于分析报文gosnmp :  用于执行SNMP操作的库gotcp :   用于快速编写tcp应用的库grab :  管理文件下载的Go 语言库graval :  试验性的FTP 服务器框架HTTPLab : HTTPLabs让你检查HTTP请求和伪造响应。httpproxy : HTTP代理处理程序和拨号器。iplib :   用于处理IP地址的库 (net.IP, net.IPNet),灵感来自python ipaddress和ruby ipaddr。jazigo : Jazigo是一个用Go编写的工具,用于检索多个网络设备的配置。kcp-go :KCP – 快速可靠的ARQ协议。kcptun :   基于KCP协议的极其简单和快速的udp隧道。lhttp :   强大的websocket框架,让您更轻松地建立IM服务器。linkio : 接口读写速度模拟器llb :  非常简单但快速的后端代理服务器。对于快速重定向到预定义域名很有用,无内存分配,响应速度快mdns :   简单的mDNS (组播 DNS)客户端/服务器库mqttPaho : Paho客户端提供了一个MQTT客户端库,用于通过TCP, TLS 或WebSockets和MQTT broker 建立连接NFF-Go :   用于快速开发云和裸机(原YANFF)的高性能网络功能的框架。packet :  通过TCP和UDP发送数据包。如果需要的话,它可以缓冲消息和热交换连接。panoptes-stream :  云端原生的分布式流媒体网络遥测(gNMI、Juniper JTI和Cisco MDT)库。peerdiscovery : Go库,用于使用UDP组播进行跨平台本地对等发现。portproxy :  单的TCP代理,为不支持CORS的API增加了CORS支持。publicip :  publicip返回你面向公众的IPv4地址(互联网出口)。quic-go :   纯Go中QUIC协议的实现。raw :raw允许你在设备驱动层读写网络接口的数据sftp : sftp 实现了https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt 中描述的 SSH 文件传输协议ssh :  用于创建 SSH 服务器的高级API(封装了crypto/ssh).sslb :  超简单的负载均衡库。stun :RFC 5389 STUN协议的Go实现。tcp_server :   用于更快地构建tcp服务器的Go库。tspool :  一个使用worker pool来提高性能和保护服务器的TCP库。utp :  Go uTP微传输协议的实现vssh : Go库,用于通过SSH协议构建网络和服务器自动化。water :  一个简单的TUN/TAP库。webrtc :WebRTC API的纯Go实现。winrm :  用于在Windows 机器上远程执行命令的Go WinRM客户端。xtcp :  TCP 服务器框架,支持同时全双工通信。可以优雅的关闭,并且支持自定义协议

Http Client

gentleman :  -插件驱动的HTTP客户端库。go-http-client :  支持简单方便地进行http调用。grequests :   著名的请求库的Go版本。heimdall :  具有重试和hystrix功能的http客户端。httpretry :  丰富了默认的Go HTTP客户端的重试功能。pester :   具有重试、回退和并发功能的Go HTTP客户端调用。request : golang的HTTP客户端。如果你有关于axios或requests 的经验,你会喜欢它,该库没有第三方依赖。resty :  受Ruby rest-client 的启发,为Go 设计的简单HTTP和REST客户端。rq :  golang标准客户端的更好的接口封装sling : 用于创建和发送API请求的Go HTTP客户端库。

OpenGL

gl : OpenGL的Go语言接口glfw : GLFW 3的Go语言接口go-glmatrix :  glMatrix  库的 Go 移植。 :goxjs/gl : Go语言跨平台OpenGL 接口(OS X, Linux, Windows, browsers, iOS, Android).goxjs/glfw :Go 语言跨平台glfw库,用于创建OpenGL上下文并接收事件mathgl : Go语言3D数学库,专注于3D,受到GLM 启发

ORM

beego orm :  强大的Go 语言orm 框架,支持pq/mysql/sqlite3.ent :  简单而强大的用于数据建模和查询的ORM。go-firestorm :Google/Firebase Cloud Firestore的简单ORM。go-pg :   专注于PostgreSQL功能和性能的ORM。go-queryset :   100%类型安全的ORM,能够基于GORM进行代码生成和支持MySQL、PostgreSQL、Sqlite3、SQL Server等数据库go-sql :  简单的mysql ORM。go-sqlbuilder :  灵活而强大的SQL字符串构建库,加上一个零配置的ORM。go-store :  -简单快速的基于Redis 的键值对存储库GORM :  超棒的Go 语言ORM 库,对开发者非常友好gormt : Mysql数据库到Golang 结构体的orm库。gorp :Go的ORM类库。grimoire : Grimoire是golang的数据库访问层和验证层。(支持:MySQL, PostgreSQL 和SQLite3)。lore :  适用于Go的简单轻量级的伪ORM/伪结构映射环境,。marlow :   从项目结构生成ORM,以保证编译时的安全。pop/soda :  支持MySQL, PostgreSQL, 以及SQLite.的数据库迁移、创建、ORM 的工具,QBS :  利用结构体进行标准查询,是一个Go语言ORMreform :  基于非空接口和代码生成的优秀的ORM,rel :Golang的现代数据库访问层 – 可测试、可扩展,并支持生成简洁优雅的API。SQLBoiler :ORM 生成器。为你的数据库表单生成一个功能全面、快速的ORMupper.io/db :  – 通过使用封装了成熟的数据库驱动的适配器,来使用单一接口与不同的数据源进行交互XORM :   简单、强大的Go 语言ormZoom :  基于Redis 构建的超快的数据存储于查询引擎。

Go语言包管理

go modules : go module是最新的go语言版本管理工具。go module具有支持包引入记录和其他模块的依赖构建功能。dep :  Go 语言依赖工具.vgo :  用于包和依赖管理的非官方库。gigo :  类似PIP的依赖管理工具。支持私有仓库和哈希glide :  轻松管理你的GO 语言包发布者以及发布包。 受到类似Maven, Bundler 和Pip这些工具的的启发godep : Go 语言依赖工具,Godep可以帮助开发者修复库的依赖关系gom : Go Managergoop :   简单的依赖管理工具,受到Bundler的启发gop :  通过GOPATH 构建和管理你的Go 应用程序。gopm :  Go 包管理器govendor :  Go 包管理器。Go语言vendor 工具,兼容标准vendor文件gpm : Go语言包管理工具johnny-deps :  使用Git 的最小依赖版本。modgv :  将go mod graph输出转换为Graphviz的DOT 语言。mvn-golang :  提供自动加载Golang SDK、依赖管理和在Maven项目基础架构中启动构建环境的方法的插件。nut : Vendor Go的依赖关系。VenGO :  创建和管理可导出的隔离的Go虚拟环境。 绩效jaeger :  分布式跟踪系统。pixie :  通过eBPF 对Golang应用程序进行无工具追踪。profile :  Go 的简单剖析支持包。statsviz :  实时可视化你的Go应用程序运行时的统计数据。tracer :   简单、轻量级的代码追踪库。

查询语

api-fu :GraphQL的go语言实现。dasel :   基于命令行的选择器查询和更新数据结构。类似于jq/yq,但支持JSON、YAML、TOML和XML。gojsonq : 用于查询JSON数据的Go包graphql : graphql解析器和实用工具graphql :  专注于易用性的GraphQL 服务器graphql-go : 为Go语言实现的GraphQLgws :  Apollos的GraphQL over Websocket客户端和服务器实现。jsonql : JSON查询表达式库jsonslice :  具有高级过滤器的Json路径查询。rql :  REST API的资源查询语言。rqp : REST API的查询分析器。在查询中直接支持过滤、验证、AND、OR操作。straf :  – 轻松地将Golang结构转换为GraphQL对象。

资源嵌入

esc :  – 在Go语言程序中嵌入文件并为其提供HTTP.FileSystem 接口fileb0x :  用于在Go语言程序中嵌入文件的工具,专注于可定制化和易用性go-embed :   生成用于嵌入资源文件到库或可执行文件的 Go 语言代码go-resources :   简洁的Go 语言资源嵌入工具go.rice :Go.rice是一个让你轻松使用html,js,css,图片以及模板这类资源的库mule :  将外部资源如图片、电影..嵌入到Go源代码中,使用go generate创建单文件二进制文件,专注于简单性。packr : 将静态文件嵌入Go二进制文件的简单方法。statics :   将静态资源嵌入到Go 文件中,用于单独二进制编译+使用http.FileSystem + symlinks.statik :  将静态文件嵌入到Go 语言可执行文件中templify :  将外部目标文件嵌入到Go 代码中来创建单独的二进制文件vfsgen : 生成一个vfsdata.Go文件,静态实现了一个虚拟文件系统

数据分析与数据科学

assocentity :单词到给定实体的平均距离计算包。bradleyterry :  成对比较提供一个布拉德利-特里模型。calendarheatmap :  受Github contribution的启发,为普通Go语言包提供的日历热图。chart :  Go的简单图表绘制库,支持多种图形类型。dataframe-go :  用于机器学习和统计的数据框类似于pandasdecimal :   包decimal实现了任意精度的十进制浮点运算。evaler :  简单的浮点算术表达式评估器。ewma :  指数加权移动平均数。geom : golang的几何处理库。go-dsp :   数字信号处理go-gt :   图论算法goent : 熵测量的GO实现gohistogram :  数据流的近似直方图gonum :  用于Go 编程语言的数值库。它包含了矩阵、统计、优化等方面的库。gonum/plot : Gonum/plot提供了用于创建和绘制图表的APIgoraph :   纯Go语言编写的图论库(数据结构,算法可视化)gosl :  用于线性代数、FFT、几何学、NURBS、数值方法、概率、优化、微分方程等的Go 科学库。GoStats : GoStats 是一个开源的GoLang 库,主要用于机器学习领域的数学统计,它涵盖了大部分的统计测量函数。graph :   基本图形算法库。ode : 普通微分方程 (ODE) 求解器。支持扩展状态及基于通道的迭代算法终止条件orb :  支持剪裁、GeoJSON 和Mapbox Vector Tile的2D 几何类型。pagerank :Go语言实现的加权网页排名PageRank算法piecewiselinear :  小型线性插值库。PiHex :   贝利-波尔温-普劳夫公式”Bailey-Borwein-Plouffe”)`算法的实现,用于计算十六进制πrootfinding :  用于查找二次函数根的寻根算法库stats :  统计库,包含一些Go 语言标准库中漏掉的常用函数streamtools : 通用图形化工具,用于处理流数据TextRank :Golang中的TextRank 实现,具有可扩展的特性(摘要、加权、短语提取)和多线程(goroutine)支持。triangolatte :  2D三角测量库。允许将线条和多边形(基于点)翻译成GPU语言。

安全领域相关库

acmetool :ACME (Lets Encrypt) 客户端工具,支持自动续期.acra :   用于保护基于数据库的应用程序的网络加密代理,用于防止数据泄露、SQL注入等。argon2-hashing :Go 的argon2 包的封装,与Go 的标准库Bcrypt 和simple-scrypt 包相对应argon2pw :  具有恒定时间密码比较功能的argon2 密码散列生成库autocert :   自动提供Lets Encrypt 证书并启动TLS服务器。BadActor :  受fail2ban 的启发驻留在内存中的应用驱动监控程序,Cameradar :   用于远程入侵监控摄像头的RTSP流的工具库。certificates :  用于生成tls证书的工具库。firewalld-rest :  用于动态更新linux服务器上的firewalld规则的定时程序。go-generate-password : 密码生成器,可以作为客户端使用或者作为代码库使用。go-password-validator :  用于原始加密熵值的密码验证器。go-yara :Go Bindings for YARA 恶意软件研究人员(以及其他所有人)的模式匹配瑞士刀”。goArgonPass : Argon2密码散列和验证,旨在与现有的Python和PHP实现兼容。goSecretBoxPassword :   用于安全地散列和加密密码的go语言包。Interpol : 用于模糊和渗透测试的基于规则的数据生成器,。lego :  纯Go语言开发的ACME 客户端库及命令行工具memguard : 用于处理内存中敏感数据的Go 语言库nacl : NaCL系列API 的Go 实现optimus-go :   使用Knuth算法进行ID哈希和混淆。passlib :  密码哈希库secure :  为 Go 提供了一些安全功能HTTP 中间件,secureio :   基于XChaCha20-poly1305、ECDH和ED25519的io.ReadWriteCloser的密钥交换+认证+加密封装器和复用器simple-scrypt :  Scrypt库,具有简单、易懂的API,同时具有内置的自动校准功能ssh-vault : 利用ssh 秘钥加解密 。sslmgr :  通过对acme/autocert的高级封装,使SSL证书的使用变得简单。themis : 高级加密库,用于解决典型的数据安全任务(安全数据存储、安全消息传递、零知识证明认证),提供14种语言,最适合多平台应用。

6 万 Star! Go 语言资源大全(中)

分享、点赞和在看

支持我们分享更多好文章,谢谢!

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务