關於Go語言的一系列庫、框架分享,涉及機器學習、數據庫等多方面

Go語言 機器學習 NoSQL MySQL IT168企業級 IT168企業級 2017-09-27

作為一款網紅編程語言,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應用程序。

關於Go語言的一系列庫、框架分享,涉及機器學習、數據庫等多方面

高級控制檯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語言的一系列庫、框架分享,涉及機器學習、數據庫等多方面

數據庫

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代碼。

關於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語言程序員互動。

相關推薦

推薦中...