因为外链问题,完整版可【点击】浏览原文或到 github我的项目 中,欢送关注。
目录(善用Ctrl+F)
根底入门
老手
- Golang开发老手常犯的50个谬误
数据类型
- 连nil切片和空切片一不一样都不分明?那BAT面试官只好让你回去等告诉了。
- golang面试题:字符串转成byte数组,会产生内存拷贝吗?
- golang面试题:翻转含有中文、数字、英文字母的字符串
- golang面试题:拷贝大切片肯定比小切片代价大吗?
- map不初始化应用会怎么样
- map不初始化长度和初始化长度的区别
- map承载多大,大了怎么办
- map的iterator是否平安?能不能一边delete一边遍历?
- 字符串不能改,那转成数组能改吗,怎么改
- 怎么判断一个数组是否曾经排序
- 一般map如何不必锁解决协程平安问题
- array和slice的区别
- golang面试题:json包变量不加tag会怎么样?
- 零切片、空切片、nil切片是什么
- slice深拷贝和浅拷贝
- map触发扩容的机会,满足什么条件时扩容?
- map扩容策略是什么
- 自定义类型切片转字节切片和字节切片转回主动以类型切片
- make和new什么区别
- slice ,map,chanel创立的时候的几个参数什么含意
线程平安的map怎么实现
流程管制
- 昨天那个在for循环里append元素的共事,明天还在么?
- golang面试官:for select时,如果通道曾经敞开会怎么样?如果只有一个case呢?
进阶
包治理
- 学go mod就够了!
优化
- golang面试题:怎么防止内存逃逸?
- golang面试题:简略聊聊内存逃逸?
- 给大家争脸了,用了三年golang,我还是没答对这道内存透露题
- 内存碎片化问题
- chan相干的goroutine泄露的问题
- string相干的goroutine泄露的问题
- 你肯定会遇到的内存回收策略导致的疑似内存透露的问题
- sync.Pool的实用场景
- go1.13sync.Pool比照go1.12版本优化点
并发编程
- golang面试题:对曾经敞开的的chan进行读写,会怎么样?为什么?
- golang面试题:对未初始化的的chan进行读写,会怎么样?为什么?
- sync.map 的优缺点和应用场景
- sync.Map的优化点
包
- 罕用官网包阐明
- 罕用第三方包阐明
- 罕用框架
- 残缺规范库列表
优良的第三方库
- 音频和音乐
- 数据结构:Go中的通用数据结构和算法
- 分布式系统:Go中的通用数据结构和算法
- 电子邮件:实现电子邮件创立和发送的库和工具
- 嵌入式脚本语言:在go代码中嵌入其余语言
- 错误处理
- 解决文件和文件系统的库
- 金融:会计和财务软件包
- 游戏开发:游戏开发相干库
- 地理位置:天文相干的地位信息和工具库
- 编译器相干:转到其余语言
- Goroutines:用于治理和应用Goroutines的工具
- 图形界面:用于构建GUI应用程序的库
- 图片:用于解决图像的库
- 物联网:物联网设施编程库
- JSON格局:用于解决JSON的库
- 机器学习:罕用机器学习库
- 微软办公软件
- 自然语言解决
- 网络:与网络各层配合应用的库
- 视频:用于解决视频的库
高级个性
- golang面试题:能说说uintptr和unsafe.Pointer的区别吗?
- golang 面试题:reflect(反射包)如何获取字段 tag?为什么 json 包不能导出公有变量的 tag?
- 协程和线程的差异
- 垃圾回收的过程是怎么样的?
- 什么是写屏障、混合写屏障,如何实现?
- 开源库里会有一些相似上面这种奇怪的用法:
var _ io.Writer = (*myWriter)(nil)
,是为什么? - GMP模型
- 协程之间是怎么调度的
- gc的stw是怎么回事
- 利用golang个性,设计一个QPS为500的服务器
- 为什么gc会让程序变慢
- 开多个线程和开多个协程会有什么区别
- 两个interface{} 能不能比拟
- 必须要手动对齐内存的状况
- go栈扩容和栈缩容,间断栈的毛病
- golang怎么做代码优化
- golang暗藏技能:怎么拜访公有成员
问题排查
- 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
其余
罕用官网包
- 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服务器,这在传统语言中是无奈设想的。
罕用第三方包
- 数据库操作 - 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
必看我的项目
- 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性能瓶颈之后你会想要抉择的一款数据库
其余优良的开源工具分类
音频和音乐
- 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语言编写的可编写脚本的解释器。
- binder - 转到基于gopher-lua的 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的 Go绑定。
- 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 - 纯Go中图像处理算法的汇合。
- bimg - 应用libvips进行疾速无效的图像处理的小包装。
- cameron - Go的头像生成器。
- canvas - 将矢量图形转换为PDF,SVG或光栅图像。
- darkroom - 具备可变存储后端的图像代理和侧重于速度和弹性的图像处理引擎。
- geopattern - 从字符串创立丑陋的生成图像图案。
- gg - 纯Go中的2D渲染。
- gift - 图像处理过滤器的包装。
- gltf - 高效,弱小的glTF 2.0读取器,写入器和验证器。
- go-cairo - 用于cairo图形库的绑定。
- go-gd - GD库的Go绑定。
- go-nude - Go的袒露检测。
- go-opencv - 用于OpenCV的绑定。
- go-webcolors - webcolors库的端口,从Python到Go。
- gocv - 应用OpenCV 3.3+进行计算机视觉的Go软件包。
- goimagehash - Go感知图像哈希包。
- goimghdr - imghdr模块确定Go文件中蕴含的图像类型。
- govatar - 用于生成乏味头像的库和CMD工具。
- image2ascii - 将图像转换为ASCII。
- imagick - 绑定到ImageMagick的MagickWand C API。
- imaginary - 用于图像大小调整的疾速,简略的HTTP微服务。
- imaging - 简略的Go图像处理包。
- img - 抉择图像处理工具。
- ln - Go中的3D线条艺术渲染。
- mergi - 用于图像处理(合并,裁切,调整大小,水印,动画)的Tool&Go库。
- mort - 用Go编写的存储和图像处理服务器。
- mpo - 用于MPO 3D照片的解码器和转换工具。
- picfit - 用Go编写的图像大小调整服务器。
- pt - 用Go语言编写的门路跟踪引擎。
- resize - 应用常见的插值办法为Go 调整图像大小。
- rez - 在纯Go和SIMD中调整图像大小。
- smartcrop - 查找适宜任何图像和尺寸的优质作物。
- steganography - 用于LSB隐写术的Pure Go库。
- stegify - 用于LSB隐写术的Go工具,可能暗藏图像中的任何文件。
- svgo - 用于SVG生成的Go语言库。
- tga - 软件包tga是TARGA图像格式的解码器/编码器。
物联网
- connectordb - 量化自我和物联网的开源平台。
- devices - IoT设施库套件,针对x / exp / io进行试验。
- eywa - Project Eywa实质上是一个连贯管理器,用于跟踪连贯的设施。
- flogo - Project Flogo是一个用于IoT Edge利用和集成的开源框架。
- gatt - 盖特是一个围棋包构建低功耗蓝牙外设。
- gobot - Gobot是机器人技术,物理计算和物联网的框架。
- huego - 实用于Go的飞利浦Hue扩大客户端库。
- iot - IoT是用于实现Google IoT Core设施的简略框架。
- mainflux - 工业物联网音讯和设施治理服务器。
- periph - 外设I / O与低级别的主板设施接口。
- sensorbee - 用于物联网的轻量级流解决引擎。
JSON格局
- ajson - 具备JSONPath反对的golang的形象JSON。
- gjo - 用于创立JSON对象的小型实用程序。
- GJSON - 应用一行代码获取JSON值。
- go-jsonerror - Go-JsonError可让咱们轻松创立遵循JsonApi标准的json响应谬误。
- go-respond - Go包,用于解决常见的HTTP JSON响应。
- gojq - Golang中的 JSON查问。
- gojson - 从示例JSON主动生成Go(golang)构造定义。
- JayDiff - 用Go编写的JSON diff实用程序。
- jettison - 用于Go的高性能,无反射JSON编码器。
- JSON-to-Go - 将JSON转换为Go构造。
- json2go - 高级JSON到Go构造转换。提供能够解析多个JSON文档并创立适宜所有JSON的构造的包。
- jsonapi-errors - 依据JSON API谬误参考进行绑定。
- jsonf - 突出显示格局和获取JSON的构造查问的控制台工具。
- jsongo - Fluent API,能够更轻松地创立Json对象。
- jsonhal - 简略的Go包,用于将自定义构造编组为HAL兼容的JSON响应。
- kazaam - 用于JSON文档的任意转换的API。
- mp - 简略的cli电子邮件解析器。以后,它应用规范输出并输入JSON。
机器学习
- bayesian - 贝叶斯分类为Golang天真。
- CloudForest - 疾速,灵便,多线程的决策树汇合,用于纯Go中的机器学习。
- eaopt - 进化优化库。
- evoli - 遗传算法和粒子群优化库。
- fonet - 用Go编写的深度神经网络库。
- go-cluster - k模式和k-原型聚类算法的Go实现。
- go-deep - Go中功能丰富的神经网络库
- go-fann - 疾速人工神经网络(FANN)库的Go绑定。
- go-galib - 用Go / golang编写的遗传算法库。
- go-pr - Go lang中的模式识别包。
- gobrain - 用go语言编写的神经网络
- godist - 各种概率分布及相干办法。
- goga - Go的遗传算法库。
- GoLearn - 用于Go的通用机器学习库。
- golinear - Go的liblinear绑定。
- GoMind - Go中的简略神经网络库。
- goml - Go中的在线机器学习。
- Goptuna - 用于Go语言编写的黑盒函数的贝叶斯优化框架。所有都会被优化。
- goRecommend - 用Go编写的举荐算法库。
- gorgonia - 基于图形的计算库,例如Theano for Go,它提供了用于构建各种机器学习和神经网络算法的原语。
- gorse - 基于Go编写的合作过滤的离线举荐零碎后端。
- goscore - 用于PMML的Go Scoring API。
- gosseract - 应用Tesseract C ++库的OCR(光学字符识别)软件包。
- libsvm - 基于LIBSVM 3.14 libsvm的golang版本衍生作品。
- neat - 用于加强拓扑神经演变(NEAT)的即插即用,并行Go框架。
- neural-go - go-在Go中实现的多层感知器网络,通过反向流传进行训练。
- ocrserver - 一个简略的OCR API服务器,非常容易被Docker和Heroku部署。
- onnx-go - 转到凋谢神经网络替换(ONNX)的接口。
- probab - 概率分布函数。贝叶斯推断。用纯Go语言编写。
- regommend - 倡议和合作过滤引擎。
- shield - 贝叶斯文本分类器,具备灵便的标记器和Go的存储后端。
- tfgo - 易于应用的Tensorflow绑定:简化了官网Tensorflow Go绑定的应用。在Go中定义计算图,加载并执行通过Python训练的模型。
- Varis - Golang神经网络。
金融
- unioffice - Pure Go库,用于创立和解决Office Word(.docx),Excel(.xlsx)和Powerpoint(.pptx)文档。
- excelize - Golang库用于读取和写入Microsoft Excel™(XLSX)文件。
- go-excel - 一个简略而轻便的阅读器,能够将相似于related-db的excel读取为表格。
- goxlsxwriter - libxlsxwriter的Golang绑定,用于编写XLSX(Microsoft Excel)文件。
- xlsx - 用于简化在Go程序中读取Microsoft Excel最新版本应用的XML格局的库。
- xlsx - 在Go程序中疾速/平安地读取/更新您现有的Microsoft Excel文件的办法。
自然语言解决
- getlang - 疾速自然语言检测程序包。
- go-i18n - 用于解决本地化文本的软件包和一个随附工具。
- go-mystem - CGo与Yandex.Mystem的绑定-俄罗斯状态分析仪。
- go-nlp - 用于解决离散概率分布的实用程序和其余可用于执行NLP工作的工具。
- go-pinyin - CN Hanzi至Hanyu拼音转换器。
- go-stem - 搬运程序阻止算法的实现。
- go-unidecode - Unicode文本的ASCII音译。
- go2vec - 用于word2vec嵌入的阅读器和实用程序性能。
- gojieba - 这是一个围棋施行解霸其中中国分词算法。
- golibstemmer - 雪球库libstemmer库的绑定,包含porter 2。
- gotokenizer - 基于字典和Goram语言的Bigram语言模型的标记器。(当初仅反对中文细分)
- gounidecode - Go的Unicode音译器(也称为unidecode)。
- gse - 进行无效的文本宰割;反对英语,中文,日语等。
- icu - CGO联合为ICU4C C库检测和转换性能。保障与版本50.1兼容。
- kagome - 用纯Go语言编写的JP状态分析仪。
- libtextcat - libtextcat C库的Cgo绑定。保障与2.2版兼容。
- MMSEGO - 这是MMSEG的GO实现,它是中文分词算法。
- nlp - 从字符串中提取值,并用nlp填充您的构造。
- nlp - 反对LSA(潜在语义剖析)的自然语言解决库。
- paicehusk - Paice / Husk提取算法的Golang实现。
- petrovich - 彼得罗维奇(Petrovich)是库,在给定的语法状况下应用俄语名称。
- porter - 这是Martin Porter的Porter干算法的C实现的相当简略的移植。
- porter2 - 十分快的Porter 2 提取器。
- prose - 用于文本处理的库,反对标记化,词性标记,命名实体提取等。仅限英语。
- RAKE.go - 疾速主动关键字提取算法(RAKE)的Go端口。
- segment - 用于执行Unicode规范附件#29中所述的Unicode文本分段的Go库
- sentences - 句子标记器:将文本转换为句子列表。
- shamoji - shamoji是用Go编写的单词过滤程序包。
- snowball - Go的雪球茎端口(cgo包装器)。提供单词词干提取性能Snowball本机。
- stemmer - 用于Go编程语言的Stemmer软件包。包含英语和德语词干。
- textcat - Go软件包,用于基于n-gram的文本分类,并反对utf-8和原始文本。
- whatlanggo - Go的自然语言检测程序包。反对84种语言和24种脚本(书写零碎,例如拉丁语,西里尔字母等)。
- when - 天然EN和RU语言日期/工夫分析器具备可插拔的规定。
网络
- arp - 包arp实现ARP协定,如RFC 826中所述。
- buffstreams - 通过TCP流化协定缓冲区数据变得容易。
- canopus - CoAP客户端/服务器施行(RFC 7252)。
- cidranger - Go的疾速IP到CIDR查找。
- dhcp6 - 软件包dhcp6实现了DHCPv6服务器,如RFC 3315中所述。
- dns - 应用DNS的Go库。
- ether - 用于发送和接管以太网帧的跨平台Go软件包。
- ethernet - 程序包ethernet施行IEEE 802.3以太网II帧和IEEE 802.1Q VLAN标签的封送解决。
- fasthttp - 软件包fasthttp是Go的一种疾速HTTP实现,比net / http快10倍。
- fortio - 负载测试库和命令行工具,高级回显服务器和Web UI。容许指定设置的每秒查问负载,并记录提早直方图和其余有用的统计数据并对其进行图形化。Tcp,Http,gRPC。
- ftp - 程序包ftp实现RFC 959中所述的FTP客户端。
- gev - gev是基于Reactor模式的轻量级,疾速,无阻塞的TCP网络库。
- gmqtt - Gmqtt是一个灵便的高性能MQTT代理库,它齐全实现了MQTT协定V3.1.1。
- gnet - gnet是一个高性能的,用纯围棋轻便,非阻塞,事件循环网络库。
- gNxI - 应用gNMI和gNOI协定的网络管理工具的汇合。
- go-getter - Go库,用于应用URL从各种起源下载文件或目录。
- go-powerdns - Golang的 PowerDNS API绑定。
- go-stun - STUN客户端的Go实现(RFC 3489和RFC 5389)。
- gobgp - 应用Go编程语言实现的BGP。
- golibwireshark - 软件包golibwireshark应用libwireshark库来解码pcap文件并剖析解剖数据。
- gopacket - Go库,用于应用libpcap绑定进行数据包解决。
- gopcap - libpcap的包装器。
- goshark - 软件包goshark应用tshark解码IP数据包并创立数据结构以剖析数据包。
- gosnmp - 用于执行SNMP操作的本机Go库。
- gosocsvr - 套接字服务器变得简略。
- gotcp - 用于疾速编写tcp应用程序的Go软件包。
- grab - 用于管理文件下载的软件包。
- graval - 实验性FTP服务器框架。
- HTTPLab - HTTPLabs可让您查看HTTP申请并伪造响应。
- iplib - 受python ipaddress和ruby ipaddr启发而应用IP地址(net.IP,net.IPNet)的库
- jazigo - Jazigo是用Go语言编写的工具,用于检索多个网络设备的配置。
- kcp-go - KCP-疾速牢靠的ARQ协定。
- kcptun - 基于KCP协定的极其简略和疾速的udp隧道。
- lhttp - 弱小的websocket框架,可更轻松地构建IM服务器。
- linkio - 用于读取器/写入器接口的网络链接速度模仿。
- llb - 这是代理服务器的非常简单但疾速的后端。对于零内存调配和疾速响应的疾速重定向到预定义域很有用。
- mdns - Golang中的简略mDNS(多播DNS)客户端/服务器库。
- mqttPaho - Paho Go客户端提供了一个MQTT客户端库,用于通过TCP,TLS或WebSockets连贯到MQTT代理。
- NFF-Go - 用于疾速开发云和裸机(以前的YANFF)的高性能网络性能的框架。
- packet - 通过TCP和UDP发送数据包。如果须要,它能够缓冲音讯和热交换连贯。
- peerdiscovery - Pure Go库,用于应用UDP多播的跨平台本地对等发现。
- portproxy - 简略的TCP代理,它将不反对它的API增加到CORS反对中。
- publicip - 软件包publicip返回您的面向公众的IPv4地址(互联网进口)。
- quic-go - 在纯Go中实现QUIC协定。
- raw - 包raw容许在设施驱动程序级别为网络接口读取和写入数据。
- sftp - 程序包sftp实现SSH文件传输协定,如https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt
- ssh - 用于构建SSH服务器的高级API(包装crypto / ssh)。
- sslb - 这是一个超级简略的负载均衡器,只是一个实现某种性能的小我的项目。
- stun - 施行RFC 5389 STUN协定。
- tcp_server - 用于更快地构建tcp服务器的Go库。
- tspool - TCP库应用工作池来进步性能并爱护您的服务器。
- utp - 围棋UTP微传输协定的实现。
- water - 简略的TUN / TAP库。
- webrtc - WebRTC API的纯Go实现。
- winrm - 进入WinRM客户端以在Windows计算机上近程执行命令。
- xtcp - 具备同步全双工通信,平安敞开,自定义协定的TCP Server Framework。
视频
- go-astisub - 在GO中解决字幕(.srt,.stl,.ttml,.webvtt,.ssa / .ass,图文电视,.smi等)。
- go-astits - 在GO中本地解析和解复用MPEG传输流(.ts)。
- go-m3u8 - Apple m3u8播放列表的解析器和生成器库。
- goav - FFmpeg的综合Go绑定。
- gst - GStreamer的绑定。
- libgosubs - go的字幕格局反对。反对.srt,.ttml和.ass。
- libvlc-go - libvlc 2.X / 3.X / 4.X的绑定(由VLC媒体播放器应用)。
- m3u8 - Apple HLS的M3U8播放列表的解析器和生成器库。
- v4l - 用Go编写的Linux视频捕捉库。
开源书籍
- Go palyground - 不必搭建本地 Go 环境,在线就编写 Go 的代码
- Go实战开发 - 作者是驰名的 Go 开源我的项目 beego 的作者,他的最佳实际十分值得浏览
- Go Web 编程 - 跟后面一本书作者是同一位,讲的是web开发
- Go语言规范库 - 对规范库的介绍
- Go入门指南 - 比拟适宜老手,内容绝对根底一些
- Go语言圣经 - 书如其名
- Go语言中文网 - 找对圈子,学的更快
- 菜鸟教程 - 这个网站非常适合疾速上手某门语言
- Go语言高级编程 - 内容适宜进阶
- go语言本来 - 欧神出品,尽管号称进度只有9.9%/100%,但不障碍它的优良,值得一看
- golang设计模式 - 设计模式 Golang实现,《研磨设计模式》的golang实现
- Go语言四十二章经 - 能够比照查漏补缺
视频网课
外链问题,到github我的项目里自取吧哈哈哈。
<!-- 关注公众号 回复【教程】即可在常识的陆地里呛水。 -->