
腦圖持續不斷更新中,在線查看地址
后續文章和內容會不斷更新到 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服務器,這在傳統語言中是無法想象的, |
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客戶端和服務器的實作 |
| 實作了對郵件訊息的決議 | ||
| 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電子郵件, |
| 用于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
