Go常用工具和开源项目汇总
一、问题排查
- trace
- pprof
二、源码阅读
- sync.map
- net/http
- mutex
- channel
- context
- select实现原理
- main函数背后的启动过程
- 内存管理
- GC垃圾回收
- timer
三、实践常用工具
- mysql建表语句转golang struct
- json转golang struct
- toml转golang struct
- yaml转golang struct
四、其他
4.1 常用官方包
- fmt - 实现格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开发者使用最为频繁的函数。
- io - 实现了一系列非平台相关的IO相关接口和实现,比如提供了对os中系统相关的IO功能的封装。我们在进行流式读写(比如读写文件)时,通常会用到该包。
- bufio - 它在io的基础上提供了缓存功能。在具备了缓存功能后, bufio可以比较方便地提供ReadLine之类的操作。
- strconv - 提供字符串与基本数据类型互转的能力。
- os - 本包提供了对操作系统功能的非平台相关访问接口。接口为Unix风格。提供的功能包括文件操作、进程管理、信号和用户账号等。
- sync - 它提供了基本的同步原语。在多个goroutine访问共享资源的时候,需要使用sync中提供的锁机制。
- flag - 它提供命令行参数的规则定义和传入参数解析的功能。绝大部分的命令行程序都需要用到这个包。
- encoding/json - JSON目前广泛用做网络程序中的通信格式。本包提供了对JSON的基本支持,比如从一个对象序列化为JSON字符串,或者从JSON字符串反序列化出一个具体的对象等。
- http - 通过http包,只需要数行代码,即可实现一个爬虫或者一个Web服务器,这在传统语言中是无法想象的。
4.2 常用第三方包
- 数据库操作 - github.com/jinzhu/gorm github.com/go-xorm/xorm
- 搜索es - github.com/olivere/elastic
- rocketmq操作 - github.com/apache/rocketmq-client-go/v2
- rabbitmq 操作 - github.com/streadway/amqp
- redis 操作 - github.com/go-redis/redis
- etcd 操作 - github.com/coreos/etcd/clientv3
- kafka - https://github.com/Shopify/sarama https://github.com/bsm/sarama-cluster
- excel 操作 - github.com/360EntSecGroup-Skylar/excelize
- ppt 操作 - golang.org/x/tools/cmd/present
- go-svg 操作 - https://github.com/ajstarks/svgo
- go 布隆过滤器实现 - https://github.com/AndreasBriese/bbloom
- json相关 - https://github.com/bitly/go-simplejson
- LRU Cache实现 - https://github.com/bluele/gcache https://github.com/hashicorp/golang-lru
- go运行时函数替换 - https://github.com/bouk/monkey
- toml - https://github.com/toml-lang/toml https://github.com/naoina/toml
- yaml - https://github.com/go-yaml/yaml
- viper - https://github.com/spf13/viper
- go key/value存储 - https://github.com/etcd-io/bbolt
- 基于ringbuffer的无锁golang workpool - https://github.com/Dai0522/workpool
- 轻量级的协程池 - https://github.com/ivpusic/grpool
- 打印go的详细数据结构 - https://github.com/davecgh/go-spew
- 基于ringbuffer实现的队列 - https://github.com/eapache/queue
- 拼音 - https://github.com/go-ego/gpy
- 分词 - https://github.com/go-ego/gse
- 搜索 - https://github.com/go-ego/riot
- windows COM - https://github.com/go-ego/cedar
- session - https://github.com/gorilla/sessions
- 路由 - https://github.com/gorilla/mux
- websocket - https://github.com/gorilla/websocket
- Action handler - https://github.com/gorilla/handlers
- csrf - https://github.com/gorilla/csrf
- context - https://github.com/gorilla/context
- 过滤html标签 - https://github.com/grokify/html-strip-tags-go
- 可配置的HTML标签过滤 - https://github.com/microcosm-cc/bluemonday
- 根据IP获取地理位置信息 - https://github.com/ipipdotnet/ipdb-go
- html转markdown - https://github.com/jaytaylor/html2text
- goroutine 本地存储 - https://github.com/jtolds/gls
- 彩色输出 - https://github.com/mgutz/ansi
- 表格打印 - https://github.com/olekukonko/tablewriter
- reflect 更高效的反射API - https://github.com/modern-go/reflect2
- msgfmt (格式化字符串,将%更换为变量名) - https://github.com/modern-go/msgfmt
- 可取消的goroutine - https://github.com/modern-go/concurrent
- 深度拷贝 - https://github.com/mohae/deepcopy
- 安全的类型转换包 - https://github.com/spf13/cast
- 从文本中提取链接 - https://github.com/mvdan/xurls
- 字符串格式处理(驼峰转换) - https://godoc.org/github.com/naoina/go-stringutil
- 文本diff实现 - https://github.com/pmezard/go-difflib
- uuid相关 - https://github.com/satori/go.uuid https://github.com/snluu/uuid
- 去除UTF编码中的BOM - https://github.com/ssor/bom
- 图片缩放 - https://github.com/nfnt/resize
- 生成 mock server - https://github.com/otokaze/mock
- go 性能上报到influxdb - https://github.com/rcrowley/go-metrics
- go zookeeper客户端 - https://github.com/samuel/go-zookeeper
- go thrift - https://github.com/samuel/go-thrift
- MQTT 客户端 - https://github.com/shirou/mqttcli
- hbase - https://github.com/tsuna/gohbase
- go 性能上报到influxdb - https://github.com/rcrowley/go-metrics
- go 性能上报到prometheus - https://github.com/deathowl/go-metrics-prometheus
- ps utils - https://github.com/shirou/gopsutil
- 小数处理 - https://github.com/shopspring/decimal
- 结构化日志处理(json) - https://github.com/sirupsen/logrus
- 命令行程序框架 cli - https://github.com/urfave/cli
- 命令行程序框架 cobra - https://github.com/spf13/cobra
4.3 必看项目
- gin - github.com/olivere/elastic - 轻量级web框架,很多公司都是基于它进行魔改
- beego - github.com/beego/beego - 也是web框架,比较全能
- kratos - github.com/go-kratos/kratos - bilibili开源的微服务框架,b站出品必属于精品
- TiDB - github.com/pingcap/tidb - 见识过mysql性能瓶颈之后你会想要选择的一款数据库
4.4 其他优秀的开源工具分类
音频和音乐
- 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程序包,能够从音频流生成波形图像。
数据结构
- algorithms - 算法和数据结构。CLRS研究。
- binpacker - 二进制打包程序和解包程序可帮助用户构建自定义二进制流。
- bit - 具有额外的位旋转功能的Golang设置数据结构。
- bitset - 实现位集的Go包。
- bloom - 在Go中实现的Bloom过滤器。
- bloom - Golang Bloom过滤器实现。
- boomfilters - 用于处理连续无界流的概率数据结构。
- concurrent-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中的跳过列表实现。
- gota - Go的数据框,序列和数据整理方法的实现。
- hide - ID类型,将其编组进/出哈希以防止将ID发送给客户端。
- hilbert - Go程序包,用于在空间填充曲线(例如Hilbert和Peano曲线)之间映射值。
- hyperloglog - HyperLogLog实施,具有稀疏,LogLog-Beta偏差校正和TailCut空间减少功能。
- 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 - 非常快的Go Skiplist实施。
- skiplist - Go中的跳过列表实现。
- timedmap - 具有过期的键/值对的地图。
- treap - 使用树堆的持久快速排序的地图。
- trie - Go中的Trie实现。
- ttlcache - 内存中的LRU字符串接口{}映射,其中包含golang的到期时间。
- typ - 空类型,安全的原始类型转换和从复杂结构中获取值。
- willf/bloom - Go包实现Bloom过滤器。
分布式系统
- celeriac - 用于在Go中添加支持以交互和监视Celery工作者,任务和事件的库。
- consistent - 具有受限负载的一致哈希
- dht - BitTorrent Kademlia DHT实施。
- digota - grpc电子商务微服务。
- dot - 使用操作转换/ OT进行分布式同步。
- doublejump - 改进后的Google的跳转一致性哈希。
- dragonboat - Go中功能齐全的高性能多组Raft库。
- drmaa - 基于DRMAA标准的集群调度程序的作业提交库。
- dynamolock - DynamoDB支持的分布式锁定实现。
- dynatomic - 将DynamoDB用作原子计数器的库。
- emitter-io - 使用MQTT,Websockets和love构建的高性能,分布式,安全和低延迟的发布-订阅平台。
- flowgraph - 基于流的编程包。
- gleam - 用纯围棋和Luajit快速和可扩展的分布式的map / reduce系统,具有Luajit的高性能结合Go的高并发,单独运行或分发。
- glow - 易于使用的可扩展的分布式大数据处理,Map-Reduce,DAG执行,全部在纯Go中进行。
- go-health - health-用于在服务中启用异步依赖项运行状况检查的库。
- go-jump - Google的“ Jump”一致性哈希函数的端口。
- go-kit - 支持服务发现,负载平衡,可插拔传输,请求跟踪等的微服务工具包
- go-sundheit - 建立用于支持为golang服务定义异步服务运行状况检查的库。
- gorpc - 简单,快速和可扩展的RPC库,可实现高负载。
- grpc-go - gRPC的Go语言实现。基于HTTP / 2的RPC。
- hprose - 十分新颖的RPC库,现在支持25种以上的语言。
- jsonrpc - jsonrpc软件包可帮助实现JSON-RPC 2.0。
- jsonrpc - JSON-RPC 2.0 HTTP客户端实现。
- KrakenD - 具有中间件的超高性能API网关框架。
- liftbridge - NATS的轻量级,容错消息流。
- micro - 可插拔的microService工具箱和分布式系统平台。
- NATS - 用于微服务,IoT和云本机系统的轻量级高性能消息传递系统。
- outboxer - Outboxer是一个实现库模式的go库。
- pglock - PostgreSQL支持的分布式锁定实现。
- raft - HashiCorp的Raft共识协议的Golang实现。
- raft - 围棋实施筏一致协议,由CoreOS的。
- rain - BitTorrent客户端和库。
- redis-lock - 使用Redis的简化分布式锁定实现。
- resgate - 用于构建REST,实时和RPC API的实时API网关,其中所有客户端都可以无缝同步。
- ringpop-go - Go应用程序的可扩展,容错应用程序层分片。
- rpcx - 分布式可插拔RPC服务框架,例如阿里巴巴Dubbo。
- sleuth - 用于在HTTP服务之间进行无主p2p自动发现和RPC的库(ZeroMQ
- tendermint - 高性能中间件,用于使用Tendermint共识和区块链协议将以任何编程语言编写的状态机转换为拜占庭容错复制状态机。
- torrent - BitTorrent客户端软件包。
电子邮件
- chasquid - 用Go编写的SMTP服务器。
- douceur - CSS内衬为您的HTML电子邮件。
- email - 用于Go的强大而灵活的电子邮件库。
- go-dkim - DKIM库,用于签名和验证电子邮件。
- go-imap - 用于客户端和服务器的IMAP库。
- go-message - Internet消息格式和邮件消息的流库。
- go-premailer - Go中HTML邮件的内联样式。
- go-simple-mail - 使用SMTP保持活动状态和两个超时发送电子邮件的非常简单的程序包:连接和发送。
- Hectane - 提供HTTP API的轻型SMTP客户端。
- hermes - Golang软件包,可生成干净的响应式HTML电子邮件。
- mailchain - 将加密的电子邮件发送到用Go编写的区块链地址。
- mailgun-go - Go库,用于使用Mailgun API发送邮件。
- MailHog - 通过Web和API界面进行电子邮件和SMTP测试。
- SendGrid - SendGrid的Go库,用于发送电子邮件。
- smtp - SMTP服务器协议状态机。
嵌入式脚本语言
- anko - 用Go语言编写的可编写脚本的解释器。
- gopher-luabinder - 转到基于gopher-lua
- cel-go - 具有渐进式输入功能的快速,便携式,非图灵完整表达评估。
- expr - 可以评估表达式的引擎。
- gentee - 可嵌入的脚本编程语言。
- gisp - Go中的简单LISP。
- go-duktape - Go的Duktape JavaScript引擎绑定。
- go-lua - Lua 5.2 VM到纯Go的端口。
- go-php - Go的PHP绑定。
- go-python - 与CPython C-API的幼稚go绑定。
- golua - Lua C API的绑定。
- gopher-lua - 用Go编写的Lua 5.1 VM和编译器。
- gval - 用Go编写的高度可定制的表达语言。
- ngaro - 可嵌入的Ngaro VM实现,支持在Retro中编写脚本。
- otto - 用Go编写的JavaScript解释器。
- purl - Go中嵌入的Perl 5.18.2。
- tengo - 用于Go的字节码编译脚本语言。
错误处理
- emperror - Go库和应用程序的错误处理工具和最佳实践。
- errlog - 可破解的软件包,用于确定错误的负责任的源代码(以及其他一些快速调试功能)。可插入任何现成的记录器。
- errors - 下拉更换为标准库的错误包和github.com/pkg/errors。提供各种错误处理原语。
- errors - 提供简单错误处理原语的软件包。
- errors - 简单golang错误处理与分类元。
- errorx - 具有堆栈跟踪,错误组成等的功能丰富的错误包。
- Falcon - 一个简单但功能强大的错误处理软件包。
- go-multierror - Go(golang)软件包,用于将错误列表表示为单个错误。
- tracerr - 带有堆栈跟踪和源代码片段的Golang错误。
- werr - 错误包装程序为Go中的错误类型创建了一个包装程序,该包装程序捕获了调用它的文件,行和堆栈。
文件
- afero - Go的文件系统抽象系统。
- afs - Go的抽象文件存储(mem,scp,zip,tar,云:s3,gs)。
- bigfile - 文件传输系统,支持使用http api,rpc调用和ftp客户端管理文件。
- checksum - 计算大型文件的消息摘要,例如MD5和SHA256。
- flop - 文件操作库,旨在与GNU cp
- go-csv-tag - tag-使用标签加载csv文件。
- go-decent-copy - 复制human文件。
- go-exiftool - ExifTool的Go绑定,这是众所周知的库,用于从文件(图片,PDF,office,...)提取尽可能多的元数据(EXIF,IPTC等)。
- go-gtfs - 在go中加载gtfs文件。
- notify - 具有简单API的文件系统事件通知库,类似于os / signal。
- opc - 为Go加载Open Packaging Conventions(OPC)文件。
- parquet - 读取和写入 parquet
- pdfcpu - PDF 处理器。
- skywalker - 一种软件包,允许一个人轻松地同时通过文件系统。
- stl - 读取和写入STL(立体光刻)文件的模块。并发读取算法。
- tarfs - tar文件FileSystem interface
- vfs - 跨多种文件系统类型(例如os,S3和GCS)的Go的一组可插拔,可扩展且自以为是的文件系统功能。
金融
- accounting - golang的货币和货币格式。
- currency - 高性能和准确的货币计算包。
- decimal - 任意精度定点十进制数字。
- go-finance - Go中的综合金融市场数据。
- go-finance - 金融功能库,用于货币时间价值(年金),现金流量,利率转换,债券和折旧计算。
- go-finance - 获取汇率,通过VIES检查增值税号和检查IBAN银行帐号的模块。
- go-money - Fowler的Money模式的实现。
- ofxgo - 查询OFX服务器和/或解析响应(使用示例命令行客户端)。
- orderbook - 匹配引擎的限价订单在Golang。
- techan - 具有高级市场分析和交易策略的技术分析库。
- transaction - 以多线程模式运行的嵌入式帐户嵌入式事务数据库。
- vat - 增值税号验证和欧盟增值税率。
游戏开发
- Azul3D - 用Go语言编写的3D游戏引擎。
- Ebiten - Go中死的简单2D游戏库。
- engo - Engo是用Go语言编写的开源2D游戏引擎。它遵循实体组件系统范式。
- g3n - Go 3D游戏引擎。
- GarageEngine - 用Go语言编写的2D游戏引擎,可在OpenGL上使用。
- glop - Glop(权力游戏库)是一个相当简单的跨平台游戏库。
- go-astar - A 路径查找算法的Go实现。
- go-collada - Go包,用于Collada文件格式。
- go-sdl2 - Simple DirectMedia Layer
- go3d - 用于Go的面向性能的2D/3D数学软件包。
- gonet - 使用golang实现的游戏服务器框架。
- goworld - 可扩展的游戏服务器引擎,具有空间实体框架和热插拔功能。
- Leaf - 轻量级游戏服务器框架。
- nano - 重量轻,设备,高性能的基于golang游戏服务器架构。
- Oak - Pure Go游戏引擎。
- Pitaya - 可扩展的游戏服务器框架,具有群集支持和通过C SDK的iOS,Android,Unity等客户端库。
- Pixel - Go中的手工制作2D游戏库。
- raylib-go - 去绑定raylib,简单和易于使用的库,以了解电子游戏编程。
- termloop - Go的基于终端的游戏引擎,建立在Termbox之上。
地理位置
- geocache - 适用于基于地理位置的应用程序的内存中缓存。
- geoserver - geoserver是Go软件包,用于通过GeoServer REST API操纵GeoServer实例。
- gismanager - 将 GIS数据(矢量数据)发布到PostGIS和Geoserver。
- osm - 用于读取,编写和使用OpenStreetMap数据和API的库。
- pbf - OpenStreetMap PBF golang编码器/解码器。
- S2 geometry - Go中的S2几何库。
- Tile38 - 具有空间索引和实时地理围栏的地理位置数据库。
- WGS84 - 库坐标转换和变换(ETRS89,OSGB36,NAD83,RGF93,网络墨卡托UTM)。
编译器
- c4go - 将C代码转换为Go代码。
- f4go - 将FORTRAN 77代码转换为Go代码。
- gopherjs - 从Go到JavaScript的编译器。
- llgo - Go的基于LLVM的编译器。
- tardisgo - Golang转换为CPP / CSharp / Java / JavaScript转译器。
Goroutines
- ants - 用于golang的高性能goroutine池。
- artifex - Golang使用基于工作程序的分派的简单内存中作业队列。
- async - 一种异步执行功能的安全方法,以防万一。
- breaker - 使执行流程可中断的灵活机制。
- cyclicbarrier - 用于golang的CyclicBarrier。
- go-floc - 轻松编排goroutine。
- go-flow - 控制goroutine的执行顺序。
- go-tools/multithreading - 使用带有简单API的轻量级库管理goroutine池。
- go-trylock - 支持Golang的读写锁的TryLock。
- go-waitgroup - sync.WaitGroup与错误处理和并发控制类似。
- gohive - Go的高性能和易于使用的Goroutine池。
- gollback - 异步简单函数实用程序,用于管理闭包和回调的执行。
- GoSlaves - 简单和异步Goroutine池库。
- goworker - goworker是基于Go的后台工作者。
- gowp - gowp是并发限制goroutine池。
- gpool - 管理可调整大小的上下文感知goroutine池以绑定并发。
- grpool - 轻巧的Goroutine池。
- Hunch - 预感提供功能,如:All,First,Retry,Waterfall等等,这使得异步流控制更加直观。
- oversight - 监督是Erlang监督树的完整实现。
- parallel-fn - 并行运行功能。
- pool - 有限的消费者goroutine池或无限制的goroutine池,以便更轻松地处理和取消goroutine。
- queue - 为您提供sync.WaitGroup类似的队列组可访问性。帮助您节流和限制goroutine,等待所有goroutine结束等等。
- routine - 具有上下文和支持的例程控制:Main,Go,Pool和一些有用的Executors。
- semaphore - 基于通道和上下文的具有锁定/解锁操作超时的信号量模式实现。
- semaphore - 基于CAS的快速可调整大小的信号量实现(比基于通道的信号量实现更快)。
- stl - 基于软件交易内存(STM)并发控制机制的软件交易锁。
- threadpool - Golang线程池实现。
- tunny - 线程池golang。
- worker-pool - goworker是一个简单的Go异步工作池。
- workerpool - Goroutine池,它限制了任务执行的并发性,而不是排队的任务数。
图形界面
- app - 打包以使用GO,HTML和CSS创建应用的程序。支持:MacOS,Windows正在开发中。
- fyne - 为Go设计的跨平台本机GUI,使用EFL呈现。支持:Linux,macOS,Windows。
- go-astilectron - 使用GO和HTML / JS / CSS(由Electron支持)构建跨平台GUI应用。
- go-gtk - GTK的绑定。
- go-sciter - Go绑定:用于现代桌面UI开发的可嵌入HTML / CSS / script引擎。跨平台。
- gotk3 - GTK3的绑定。
- gowd - 使用GO,HTML,CSS和NW.js进行快速简单的桌面UI开发。跨平台。
- qt - Go的Qt绑定(支持Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi)。
- ui - Go的平台本地GUI库。跨平台。
- Wails - 使用内置OS HTML渲染器的HTML UI的Mac,Windows,Linux桌面应用程序。
- walk - Go的Windows应用程序库工具包。
- webview - 具有简单双向JavaScript绑定的跨平台Webview窗口(Windows / macOS / Linux)。
- go-appindicator - libappindicator3 C库的Go绑定。
- gosx-notifier - Go的OSX桌面通知库。
- mac-activity-tracker - OSX库,用于通知计算机上的任何(可插入)活动。
- mac-sleep-notifier - golang中的OSX睡眠/唤醒通知。
- robotgo - Go本机跨平台GUI系统自动化。控制鼠标,键盘等。
- systray - 跨平台的Go库,用于在通知区域中放置图标和菜单。
- trayhost - 跨平台的Go库,用于在主机操作系统的任务栏中放置一个图标。
图片
- bild
- bimg
- cameron
- canvas
- darkroom
- geopattern
- gg
- gift
- gltf
- go-cairo
- go-gd
- go-nude
- go-opencv
- go-webcolors
- gocv
- goimagehash
- goimghdr
- govatar
- image2ascii
- imagick
- imaginary
- imaging
- img
- ln
- mergi
- mort
- mpo
- picfit
- pt
- resize
- rez
- smartcrop
- steganography
- stegify
- svgo
- tga
物联网
- connectordb
- devices
- eywa
- flogo
- gatt
- gobot
- huego
- iot
- mainflux
- periph
- sensorbee
JSON格式
- ajson
- gjo
- GJSON
- go-jsonerror
- go-respond
- gojq
- gojson
- JayDiff
- jettison
- JSON-to-Go
- json2go
- jsonapi-errors
- jsonf
- jsongo
- jsonhal
- kazaam
- mp
机器学习
- bayesian
- CloudForest
- eaopt
- evoli
- fonet
- go-cluster
- go-deep
- go-fann
- go-galib
- go-pr
- gobrain
- godist
- goga
- GoLearn
- golinear
- GoMind
- goml
- Goptuna
- goRecommend
- gorgonia
- gorse
- goscore
- gosseract
- libsvm
- neat
- neural-go
- ocrserver
- onnx-go
- probab
- regommend
- shield
- tfgo
- Varis
金融
- unioffice
- excelize
- go-excel
- goxlsxwriter
- xlsx
- xlsx
自然语言处理
- getlang
- go-i18n
- go-mystem
- go-nlp
- go-pinyin
- go-stem
- go-unidecode
- go2vec
- gojieba
- golibstemmer
- gotokenizer
- gounidecode
- gse
- icu
- kagome
- libtextcat
- MMSEGO
- nlp
- nlp
- paicehusk
- petrovich
- porter
- porter2
- prose
- RAKE.go
- segment
- sentences
- shamoji
- snowball
- stemmer
- textcat
- whatlanggo
- when
网络
- arp
- buffstreams
- canopus
- cidranger
- dhcp6
- dns
- ether
- ethernet
- fasthttp
- fortio
- ftp - 程序包ftp实现RFC 959中所述的FTP客户端。
- gev
- gmqtt
- gnet
- gNxI
- go-getter
- go-powerdns
- go-stun
- gobgp
- golibwireshark
- gopacket
- gopcap
- goshark
- gosnmp
- gosocsvr
- gotcp
- grab
- graval
- HTTPLab
- iplib
- jazigo
- kcp-go
- kcptun
- lhttp
- linkio
- llb
- mdns
- mqttPaho
- NFF-Go
- packet
- peerdiscovery
- portproxy
- publicip
- quic-go
- raw
- sftphttps://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt
- ssh
- sslb
- stun
- tcp_server
- tspool
- utp
- water
- webrtc
- winrm
- xtcp
视频
- go-astisub
- go-astits
- go-m3u8
- goav
- gst
- libgosubs
- libvlc-go
- m3u8
- v4l
开源书籍
- Go palyground - 不用搭建本地 Go 环境,在线就编写 Go 的代码
- Go实战开发 - 作者是著名的 Go 开源项目 beego 的作者,他的最佳实践非常值得阅读
- Go Web 编程 - 跟前面一本书作者是同一位,讲的是web开发
- Go语言标准库 - 对标准库的介绍
- Go入门指南 - 比较适合新手,内容相对基础一些
- Go语言圣经 - 书如其名
- Go语言中文网 - 找对圈子,学的更快
- 菜鸟教程 - 这个网站非常适合快速上手某门语言
- Go语言高级编程 - 内容适合进阶
- go语言原本 - 欧神出品,虽然号称进度只有9.9%/100%,但不妨碍它的优秀,值得一看
- golang设计模式 - 设计模式 Golang实现,《研磨设计模式》的golang实现
- Go语言四十二章经 - 可以对比查漏补缺
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步