作為一款網紅編程語言,Go語言還十分年輕,很多程序員無法及時瞭解到Go語言的框架、庫和軟件應用。近日,Github用戶avelino分享了一張非常完整且龐大的表單,包括命令行、數據庫、Web框架、機器學習、自然語言處理......以下是部分內容截取,感謝avelino的分享。
標準CLI
用於構建標準或基本命令行應用程序的庫。
argv - 使用bash語法將庫命令行字符串拆分為參數數組。
cli - 基於golang的功能豐富且易於使用的命令行程序包。
cli-init - 開始構建Golang命令行應用程序的簡單方法。
climax - 具有“human face”的替代CLI。
cobra - CLI交互指揮官。
complete - 在Go + Go命令bash完成中寫入bash完成。
docopt.go - 命令行參數解析器。
drive - Google Drive客戶端命令行。
env - 基於標籤的結構環境配置。·
flag - 簡單而強大的命令行選項解析庫支持Go子命令。
go-arg - 在Go中基於結構的參數解析。
go-flags - go命令行選項解析器。
kingpin - 支持子命令的命令行和標誌解析器。
liner - 用於命令行接口的類似於readline的庫。
mitchellh/ cli - 用於實現命令行界面的庫。
mow.cli - 用於構建具有複雜標誌和參數解析驗證的CLI應用程序庫。
pflag - 替換Go的flag包,實現POSIX/GNU-style --flags。
readline - 純Golang實現,在MIT許可下提供GNU-Readline中的大部分功能。
sflags - 基於結構的標誌生成器,用於flag, urfave/cli, pflag, cobra, kingpin和其他庫。
ukautz/ clif - 小型命令行界面框架。
urfave/ cli - 在Go(以前的codegangsta / cli)中構建命令行應用程序的簡單,快速和有趣的包。
wlog - 支持跨平臺顏色和併發性的簡單日誌記錄界面。
wmenu - 易於使用的菜單結構,用於提示用戶進行選擇的cli應用程序。
高級控制檯UI
用於構建控制檯應用程序和控制檯用戶界面的庫。
aurora - 支持fmt.Printf / Sprintf的ANSI終端顏色。
chalk - 直觀的包裝,用於優化終端/控制檯輸出。
color - 用於彩色終端輸出的多功能包裝。
colourize - 終端中ANSI文本顏色的Go庫。
go-ataman - Go庫,用於在終端中呈現ANSI彩色文本模板。
go-colorable - Windows的可著色畫筆。
go-colortext - 用於在終端中輸出顏色的庫。
gocui - Minimalist —Go庫旨在創建控制檯用戶界面。
gommon / color - Style終端文本。
mpb - 終端應用程序的多進度條。
termbox-go - Termbox是一個用於創建跨平臺的、基於文本的界面的庫。
termtables - 將Ruby庫終端表的端口用於簡單的ASCII表生成以及提供HTML輸出。
termui - 終端儀表板,基於termbox-go,並受到blessed-contrib的啟發。
uilive - 用於實時更新終端輸出的庫。
uiprogress - 靈活的庫用於在終端應用程序中呈現進度條。
uitable - 使用表格數據提高終端應用程序的可讀性。
數據結構
Go中的通用數據結構和算法。
binpacker - 二進制打包程序和解包程序可幫助用戶構建自定義二進制流。
bit - Golang設置數據結構,帶有加密的bit-twiddling功能。
bitset - Go包執行位組。
bloom - 在Go中實現的Bloom過濾器。
bloom - Golang Bloom過濾器實現。
boomfilters - 用於處理連續,無界流的概率數據結構。
concurrent-writer - bufio.Writer的高度併發插件替換。
count-min-log - 執行計數最小日誌草圖:使用近似計數器近似計數。
encoding - 整數壓縮庫。
go-adaptive-radix-tree - 執行自適應基數樹。
go-datastructures - 收集有用的,執行的和線程安全的數據結構。
go-ef - 執行Elias-Fano編碼。
go-geoindex - 內存geo索引。
go-rquad - 具有高效點位置和鄰居查找的區域四叉樹。
gods-數據結構。容器,集合,列表,堆棧,地圖,BidiMaps,樹,HashSet等
gangang-set - 線程安全和非線程安全的高性能Go集合。
goset - Go的一個有用的集合實現。
goskiplist - Go中的 Skip list實現。
goota - 數據框架和數據爭用方法實現。
hilbert - Go包,用於將值映射到空格填充曲線(如Hilbert和Peano曲線)。
hyperloglog - HyperLogLog實現與稀疏,LogLog-Beta偏差校正和TailCut空間縮減。
levenshtein - Levenshtein距離和相似性度量。
levenshtein - 在Go中計算levenshtein距離的實現。
mafsa - MA-FSA實現與最小完美哈希。
merkletree - 實現一個merkle樹,提供數據結構內容的高效安全驗證。
ttlcache - 內存中的LRU string-interface {}映射
willf/ bloom - 執行Bloom過濾器的包。
數據庫
Go中實現的數據庫。
badger - 快捷鍵值對存儲。
BigCache - 高效的鍵/值緩存,用於千兆字節數據。
bolt - Go的低級鍵/值數據庫。
buntdb - 具有自定義索引和空間支持的快速可嵌入內存中的鍵/值數據庫。
cache2go - 內存中的Key:value緩存,支持基於超時的自動無效。
cockroach - 可擴展,地理複製,事務性數據存儲。
couchcache - 由Couchbase服務器支持的RESTful緩存微服務。
dgraph - 可擴展,分佈式,低延遲,高吞吐量圖形數據庫。
diskv - 支持鍵值存儲。
eliasdb - 具有REST API,短語搜索和類似SQL的查詢語言的無依賴關係的事務圖數據庫。
forestdb - ForestDB綁定。
GCache - 緩存庫,支持可預見的Cache,LFU,LRU和ARC。
geocache - 內存緩存,適用於基於位置的應用程序。
go-cache - 內存key:value存儲/緩存(類似於Memcached)庫,適用於單機應用程序。
goleveldb - 在Go中實現LevelDB鍵/值數據庫。
groupcache - Groupcache是一個緩存和緩存填充庫,用於在許多情況下替代memcached。
influxdb - 可擴展的數據存儲區,用於度量,事件和實時分析。
ledisdb - Ledisdb是一個基於LevelDB的高性能NoSQL,如Redis。
levigo - Levigo是LevelDB的Go包裝器。
Moss - Moss是一個簡單的LSM鍵值存儲引擎,用100%的Go語言編寫。
piladb - 基於堆棧數據結構的輕量級RESTful數據庫引擎。
prometheus - 監控系統和時間序列數據庫。
rqlite - 構建在SQLite上的輕量級,分佈式,關係型數據庫。
Scribble - 微小的平面文件JSON存儲。
tempdb - 臨時項目的鍵值存儲。
tidb - TiDB是一個分佈式SQL數據庫。靈感來自於Google F1的設計。
tiedot - 由Golang提供支持的NoSQL數據庫。
Tile38 - 具有空間索引和實時地理位置的地理數據庫。
數據庫模式遷移
darwin - Go的數據庫模式演化庫。
go-fixtures - 用於Golang內置數據庫/ sql庫的Django樣式裝置。
goose - 數據庫遷移工具,可以通過創建增量SQL或Go腳本來管理數據庫的演進。
gormigrate - Gorm ORM的數據庫模式遷移幫助器。
migrate - 數據庫遷移。CLI和Golang庫。
pravasan - 簡單的遷移工具 - 目前用於MySQL,但計劃即將支持Postgres,SQLite,MongoDB等。
soda - MySQL,PostgreSQL和SQLite的數據庫遷移,創建,ORM等。
sql-migrate - 數據庫遷移工具。允許使用go-bindata將遷移嵌入到應用程序中。
數據庫工具
go-mysql - Go工具集來處理MySQL協議和複製。
go-mysql-elasticsearch - 自動將MySQL數據同步到彈性搜索。
kingshard - kingshard是由Golang提供的MySQL高性能代理。
myreplication - MySql二進制日誌複製偵聽器,支持語句和基於行的複製。
orchestrator - MySQL複製拓撲管理器和可視化器。
pgweb - 基於Web的PostgreSQL數據庫瀏覽器。
pREST - 從任何PostgreSQL數據庫提供RESTful API。
vitess - 提供服務器和工具,便於MySQL數據庫擴展大型Web服務。
SQL查詢構建器,用於構建和使用SQL庫
dat - Postgres數據訪問工具包。
Dotsql - 將sql文件保存在一個地方並輕鬆使用。
goqu - 慣用SQL構建器和查詢庫。
igor - PostgreSQL抽象層,支持高級功能,並使用類似gorm的語法。
ozzo-dbx - 強大的數據檢索方法以及與數據庫無關的查詢構建能力。
scaneo - 生成Go代碼將數據庫行轉換為任意結構。
sqrl - SQL查詢生成器,性能提升。
Squirrel - 構建SQL查詢的庫。
xo - 根據現有架構定義或支持PostgreSQL,MySQL,SQLite,Oracle和Microsoft SQL Server的自定義查詢,為數據庫生成慣用Go代碼。
機器學習
機器學習庫
bayesian - Go語言的樸素貝葉斯分類。
CloudForest - 以純Go為機器學習的快速,靈活,多線程的決策樹組合。
gago - 靈活並行的遺傳算法。
go-fann - 快速人工神經網絡(FANN)庫的綁定。
gogo galib - Go / golang編寫的遺傳算法庫。
go-pr - Golang中的圖像識別包。
gobrain - Go語言寫的神經網絡。
godist - 各種概率分佈和相關方法。
goga - Go的遺傳算法庫。
GoLearn - Go的通用機器學習庫。
golinear - Go的liblinear綁定。
goml - 在線機器學習。
goRecommend - 使用Go編寫的推薦算法庫。
gorgonia - 基於圖形的計算庫,如Theano for Go,為構建各種機器學習和神經網絡算法提供原始數據。
goscore - 獲取PMML的API。
libsvm - libsvm golang版本派生工作基於LIBSVM 3.14。
mlgo - 該項目旨在提供Go中的簡約機器學習算法。
neat -NeuroEvolution增強拓撲(NEAT)的即插即用並行Go框架。
neural-go —Go中實施的多層感知網絡,通過反向傳播進行培訓。
probab - 概率分佈函數。
regommend - 推薦和協同過濾引擎。
shield - 貝葉斯文本分類器,具有靈活的標記器和Go存儲後端。
自然語言處理
dpar - 基於過渡的統計依賴解析器。
go-eco - 相似性,不相似性和距離矩陣;多樣性,公平和不平等的措施;物種豐富度估計; coenocline模型。
go-i18n - 使用本地化文本的軟件包和隨附工具。
go-mystem - CGo綁定到Yandex.Mystem - 俄語形態分析器。
go-nlp - 使用離散概率分佈和其他可用於執行NLP工具的實用程序。
go-stem - porter stemming算法實現。
go-unidecode - Unicode文本的ASCII音譯。
go2vec - word2vec嵌入式閱讀器和效用函數。
gojieba - 這是一個Go執行的jieba中文分詞算法。
gounidecode - 用於Go的Unicode音譯(也稱為unidecode)。
icu - Cgo綁定icu4c C庫檢測和轉換功能。保證與版本50.1兼容。
libtextcat - 用於libtextcat C庫的Cgo綁定。保證與版本2.2的兼容性。
MMSEGO - 這是一箇中文分詞算法MMSEG的GO實現。
nlp - 從字符串中提取值並使用nlp填充結構體。
nlp - 自然語言處理庫支持LSA(潛在語義分析)。
paicehusk - Golang實施Paice / Husk Stemming算法。
porter - 這是一個非常簡單的 Martin Porter實現Porter干擾算法的端口。
prose - 支持標記化,詞性標註,命名實體提取等的文本處理庫。
RAKE.go - 快速自動關鍵詞提取算法(RAKE)的端口。
stemmer - 用於Go的Stemmer包。包括英語和德語詞幹。
textcat - 基於n-gram的文本分類Go包,支持utf-8和原始文本。
whatlanggo - Go的自然語言檢測包。支持84種語言和24種腳本(寫作系統,如拉丁語,西里爾字體等)。
when - 具有可插拔規則的自然EN和RU語言日期/時間解析器。
如果你覺得這些還不過癮,可以去Github頁面(項目源地址:https://github.com/avelino/awesome-go#web-frameworks)與眾多Go語言程序員互動。