主頁 > 後端開發 > 【吐血整理】超全golang面試題合集+golang學習指南+golang知識圖譜+成長路線 一份涵蓋大部分golang程式員所需要掌握的核心知識。

【吐血整理】超全golang面試題合集+golang學習指南+golang知識圖譜+成長路線 一份涵蓋大部分golang程式員所需要掌握的核心知識。

2021-02-26 06:10:30 後端開發

腦圖持續不斷更新中,在線查看地址
后續文章和內容會不斷更新到 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



  • 其他

  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服務器,這在傳統語言中是無法想象的,





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





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. 完整標準庫串列

子包 說明
bufio bytes 提供了對位元組切片操作的函式
crypto 收集了常見的加密常數
errors 實作了操作錯誤的函式
Expvar 為公共變數提供了一個標準的介面,如服務器中的運算計數器
flag 實作了命令列標記決議
fmt 實作了格式化輸入輸出
hash 提供了哈希函式介面
html 實作了一個HTML5兼容的分詞器和決議器
image 實作了一個基本的二維影像庫
io 提供了對I/O原語的基本介面
log 它是一個簡單的記錄包,提供最基本的日志功能
math 提供了一些基本的常量和數學函式
mine 實作了部分的MIME規范
net 提供了一個對UNIX網路套接字的可移植介面,包括TCP/IP、 UDP域名決議和UNIX域套接字
os 為作業系統功能實作了一個平臺無關的介面
path 實作了對斜線分割的檔案名路徑的操作
reflect 實作了運行時反射,允許一個程式以任意型別操作物件
regexp 實作了一個簡單的正則運算式庫
runtime 包含與Go運行時系統互動的操作,如控制goroutine的函式
sort 提供對集合排序的基礎函式集
strconv 實作了在基本資料型別和字串之間的轉換
strings 實作了操作字串的簡單函式
sync 提供了基本的同步機制,如互斥鎖
syscall 包含一個低級的作業系統原語的介面
testing 提供對自動測驗Go包的支持
time 提供測量和顯示時間的功能
unicode Unicode編碼相關的基礎函式
archive tar 實作對tar壓縮檔案的訪問
zip 提供對ZIP壓縮檔案的讀和寫支持
compress bzip2 實作了bzip2解壓縮
flate 實作了RFC 1951中所定義的DEFLATE壓縮資料格式
gzip 實作了RFC 1951中所定義的gzip格式壓縮檔案的讀和寫
lzw 實作了 Lempel-Ziv-Welch編碼格式的壓縮的資料格式
zlib 實作了RFC 1950中所定義的zlib格式壓縮資料的讀和寫
container heap 提供了實作heap.Interface介面的任何型別的堆操作
lsit 實作了一個雙鏈表
ring 實作了對回圈鏈表的操作
crypto aes 實作了AES加密(以前的Rijndael)
cipher 實作了標準的密碼塊模式,該模式可包裝進低級的塊加密實作中
des 實作了資料加密標準( Data Encryption Standard,DES)和三重資料加密演算法( TripleData Encryption Algorithm, TDEA)
dsa 實作了FIPS 186-3所定義的資料簽名演算法( Digital Signature Algorithm)
ecdsa 實作了FIPS 186-3所定義的橢圓曲線資料簽名演算法( Elliptic Curve Digital SignatureAlgorithm)
elliptic 實作了素數域上幾個標準的橢圓曲線
hmac 實作了鍵控哈希訊息身份驗證碼( Keyed-Hash Message Authentication Code,HMAC)
md5 實作了RFC 1321中所定義的MD5哈希演算法
rand 實作了一個加密安全的偽亂數生成器
rc4 實作了RC4加密,其定義見Bruce Schneier的應用密碼學( Applied Cryptography)
rsa 實作了PKCS#1中所定義的RSA加密
sha1 實作了RFC 3174中所定義的SHA1哈希演算法
sha256 實作了FIPS 180-2中所定義的SHA224和SHA256哈希演算法
sha512 實作了FIPS 180-2中所定義的SHA384和SHA512哈希演算法
subtle 實作了一些有用的加密函式,但需要仔細考慮以便正確應用它們
tls 部分實作了RFC 4346所定義的TLS 1.1協議
x509 可決議X.509編碼的鍵值和證書
x509/pkix 包含用于對X.509證書、 CRL和OCSP的ASN.1決議和序列化的共享的、低級的結構
database sql 圍繞SQL提供了一個通用的介面
sql/driver 定義了資料庫驅動所需實作的介面,同sql包的使用方式
debug dwarf 提供了對從可執行檔案加載的DWARF除錯資訊的訪問,這個包對于實作Go語言的除錯器非常有價值
elf 實作了對ELF物件檔案的訪問, ELF是一種常見的二進制可執行檔案和共享庫的檔案格式, Linux采用了ELF格式
gosym 訪問Go語言二進制程式中的除錯資訊,對于可視化除錯很有價值
macho 實作了對Mach-O物件檔案的訪問
pe 實作了對PE( Microsoft Windows Portable Executable)檔案的訪問
encoding ascii85 實作了ascii85資料編碼,用于btoa工具和Adobe’s PostScript以及PDF檔案格式
asn1 實作了決議DER編碼的ASN.1資料結構,其定義見ITU-T Rec X.690
base32 實作了RFC 4648中所定義的base32編碼
base64 實作了RFC 4648中所定義的base64編碼
binary 實作了在無符號整數值和位元組串之間的轉化,以及對固定尺寸值的讀和寫
csv 可讀和寫由逗號分割的數值( csv)檔案
gob 管理gob流——在編碼器(發送者)和解碼器(接收者)之間進行二進制值交換
hex 實作了十六進制的編碼和解碼
json 實作了定義于RFC 4627中的JSON物件的編碼和解碼
pem 實作了PEM( Privacy Enhanced Mail)資料編碼
xml 實作了一個簡單的可理解XML名字空間的XML 1.0決議器
go ast 宣告了用于展示Go包中的語法樹型別
build 提供了構建Go包的工具
doc 從一個Go AST(抽象語法樹)中提取源代碼檔案
parser 實作了一個Go源檔案決議器
printer 實作了對AST(抽象語法樹)的列印
scanner 實作了一個Go源代碼文本的掃描器
token 定義了代表Go編程語言中詞法標記以及基本操作標記( printing、 predicates)的常量
hash adler32 實作了Adler-32校驗和
crc32 實作了32位的回圈冗余校驗或CRC-32校驗和
crc64 實作了64位的回圈冗余校驗或CRC-64校驗和
fnv 實作了Glenn Fowler、 Landon Curt Noll和Phong Vo所創建的FNV-1和FNV-1a未加密哈希函式
html template 它自動構建HTML輸出,并可防止代碼注入
image color 實作了一個基本的顏色庫
draw 提供一些做圖函式
gif 實作了一個GIF影像解碼器
jpeg 實作了一個JPEG影像解碼器和編碼器
png 實作了一個PNG影像解碼器和編碼器
index suffixarray 通過構建記憶體索引實作的高速字串匹配查找演算法
io ioutil 實作了一些實用的I/O函式
log syslog 提供了對系統日志服務的簡單介面
math big 實作了多精度的算術運算(大數)
cmplx 為復數提供了基本的常量和數學函式
rand 實作了偽亂數生成器
mime multipart 實作了在RFC 2046中定義的MIME多個部分的決議
net http 提供了HTTP客戶端和服務器的實作
mail 實作了對郵件訊息的決議
rpc 提供了對一個來自網路或其他I/O連接的物件可匯出的方法的訪問
smtp 實作了定義于RFC 5321中的簡單郵件傳輸協議( Simple Mail Transfer Protocol)
textproto 實作了在HTTP、 NNTP和SMTP中基于文本的通用的請求/回應協議
url 決議URL并實作查詢轉義
http/cgi 實作了定義于RFC 3875中的CGI(通用網關介面)
http/fcgi 實作了FastCGI協議
http/httptest 提供了一些HTTP測驗應用
http/httputil 提供了一些HTTP應用函式,這些是對net/http包中的東西的補充,只不過相對不太常用
http/pprof 通過其HTTP服務器運行時提供性能測驗資料,該資料的格式正是pprof可視化工具需要的
rpc/jsonrpc 為rpc包實作了一個JSON-RPC ClientCodec和ServerCodec
os exec 可運行外部命令
user 通過名稱和id進行用戶賬戶檢查
path filepath 實作了以與目標作業系統定義檔案路徑相兼容的方式處理檔案名路徑
regexp syntax 將正則運算式決議為語法樹
runtime debug 包含當程式在運行時除錯其自身的功能
pprof 以pprof可視化工具需要的格式寫運行時性能測驗資料
sync atomic 提供了低級的用于實作同步演算法的原子級的記憶體機制
testing iotest 提供一系列測驗目的的型別,實作了Reader和Writer標準介面
quick 實作了用于黑箱測驗的實用函式
script 幫助測驗使用通道的代碼
text scanner 為UTF-8文本提供了一個掃描器和分詞器
tabwriter 實作了一個寫篩選器( tabwriter.Writer),它可將一個輸入的tab分割的列翻譯為適當對齊的文本
template 資料驅動的模板引擎,用于生成類似HTML的文本輸出格式
template/parse 為template構建決議樹
unicode/utf16 實作了UTF-16序列的的編碼和解碼
unicode/utf8 實作了支持以UTF-8編碼的文本的函式和常數





5. 其他優秀的開源工具分類


  • 音頻和音樂
說明
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語言四十二章經 可以對比查漏補缺

  • 視頻網課

    關注公眾號 回復【教程】即可在知識的海洋里嗆水,





轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263630.html

標籤:Go

上一篇:C/C++編程日記:用C語言寫猜數字游戲

下一篇:換人!golang面試官:連怎么避免記憶體逃逸都不知道?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more