能夠看到,今年穀歌家的 Go 編程語言流行度有着驚人的上升趨勢,其發展也是愈來愈好,所以本文整理了一些優秀的 Go 存儲相關開源項目和庫,一塊兒分享,一塊兒學習。mysql
存儲服務器(Storage Server)
Go 實現的存儲服務器
- minio - Minio 是一個與 Amazon S3 APIs 兼容的開源對象存儲服務器,分佈式存儲方案
- rclone - 「用於雲存儲的 Rsync」 - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfile…
- camlistore - Camlistore 是你的我的存儲系統:一種存儲、同步、共享、建模和備分內容的方式
- torus - CoreOS 的現代分佈式存儲系統
- s3git - 雲存儲的 Git。用於數據的分佈式版本控制系統
- rook - 開放、雲本地和通用的分佈式存儲
Key-Value 存儲(Key-Value Store)
Go 實現的 Key-Value 存儲
- etcd - 可靠的分佈式 key-value 存儲,用於分佈式系統的最關鍵數據
- go-cache - Go 語言實現的一個內存中的緩存框架,實現 Key-Value 的序列存儲,適用於單臺機器應用程序
- biscuit - Biscuit 用於 AWS 基礎架構建設時多區域 HA key-value 存儲
- diskv - 支持磁盤的 key-value 存儲
文件系統(File System)
Go 實現的文件系統
- git-lfs - 用於大文件版本控制的 Git 擴展
- seaweedfs - SeaweedFS 是一個用於小文件的簡單且高度可擴展的分佈式文件系統
- fsnotify - Go 實現的跨平臺文件系統監控庫
- goofys - Go 實現的高性能,POSIX-ish Amazon S3 文件系統
- go-systemd - systemd 的 Go 語言綁定版(包括socket activation, journal, D-Bus, 和 unit files)
- gcsfuse - 用於與 Google 雲存儲交互的用戶空間文件系統
- svfs - 基於 Openstack 的虛擬文件系統
數據庫(Database)
Go 實現的數據庫
- BigCache - 用於千兆字節數據的高效 key/value 緩存
- bolt - Go 實現的低層級的 key/value 數據庫
- buntdb - 一個 Go 實現的快速、可嵌入的 key/value 內存數據庫,具備自定義索引和 geospatial 支持的功能
- cache2go - key/value 內存緩存,支持基於超時的自動無效功能
- cockroach - 一個可伸縮的、支持地理位置處理、支持事務處理的數據存儲系統
- couchcache - 由 Couchbase 服務器支持的 RESTful 緩存微服務
- dgraph - 具備可擴展、分佈式、低延遲和高吞吐量功能的圖形數據庫
- eliasdb - 使用 REST API,短語搜索和相似 SQL 查詢語言的無依賴性,支持事務處理的圖形數據庫
- forestdb - Go bindings for ForestDB.Go 語言綁定版的 ForestDB
- GCache - 支持可用緩存、LFU、LRU 和 ARC 的緩存數據庫
- geocache - An in-memory cache that is suitable for geolocation based applications.適用於 地理位置處理基於應用程序的內存緩存
- goleveldb - An implementation of the LevelDB key/value database in the Go.Go 實現的 LevelDB key/value 數據庫
- groupcache - Groupcache 是一個緩存和緩存填充庫,在許多狀況下用於替代 memcached
- influxdb - 開源的分佈式指標、事件和實時分析的可擴展數據庫
- ledisdb - 基於 LevelDB 相似 Redis 的高性能 NoSQL 數據庫
- levigo - 用於 LevelDB 的 Go 封裝包
- moss - Go 實現的簡單 LSM key-value 存儲引擎
- piladb - 基於堆棧數據結構的輕量級 RESTful 數據庫引擎
- pREST - 爲任何來自 PostgreSQL 的數據庫提供一個 RESTful API
- prometheus - 服務監控系統和時間序列數據庫
- rqlite - 基於 SQLite 構建的輕量級、分佈式關係數據庫
- scribble - 一個小型的 Flat File JSON 存儲
- tidb - TiDB 是一個分佈式 SQL 數據庫,靈感來自於 Google F1 和 Google spanner。TiDB 支持包括傳統 RDBMS 和 NoSQL 的特性。
- tiedot - 基於 Go 的 NoSQL 數據庫
- Tile38 - 具備空間索引和實時地理圍欄的地理位置數據庫
數據庫遷移
- darwin - Go 實現的數據庫 schema 演進庫
- goose - 數據庫遷移工具。可經過建立增量 SQL 或 Go 腳原本管理數據庫的演變
- gormigrate - Gorm ORM 的數據庫遷移助手
- migrate - Go 實現的數據庫遷移處理,支持 MySQL, PostgreSQL, Cassandra, 和 SQLite
- pravasan - 簡單的遷移工具,目前支持 MySQL,PostgreSQL,但計劃很快支持 SQLite, MongoDB 等
- soda - 具備數據庫遷移、建立和 ORM 等功能,適用於 MySQL, PostgreSQL, 和 SQLite
- sql-migrate - 數據庫 schema 遷移工具。容許使用 go-bindata 將遷移嵌入到應用程序中
數據庫工具
SQL 查詢構建器,用於構建和使用 SQL 的庫
- dat - Go 實現的 Postgres 數據訪問工具包
- Dotsql - Go 語言實現的庫,可幫助你將 sql 文件保存至某個地方並輕鬆使用它
- goqu - Go 實現的 SQL 構建器和查詢庫
- igor - PostgreSQL 的抽象層,支持高級功能並使用相似 Gorm 的語法
- ozzo-dbx - 強大的數據檢索方法以及 DB-agnostic 查詢構建功能
- scaneo - 生成 Go 代碼以將數據庫行轉換爲任意結構
- sqrl - SQL 查詢構建器,Squirrel 的 fork 具備更好的性能
- Squirrel - 幫助你構建 SQL 查詢的 Go 庫
- xo - 基於現有 schema 定義或支持 PostgreSQL,MySQL,SQLite,Oracle 和 Microsoft SQL Server 的自定義查詢生成數據庫的慣用 Go 代碼
數據庫驅動
用於鏈接和操做數據庫的庫git
關係數據庫
NoSQL 數據庫
搜索和分析數據庫
- bleve - 現代文本索引庫
- elastic - Elasticsearch 客戶端
- elastigo - Elasticsearch 客戶端庫
- goes - 與 Elasticsearch 交互的庫
- skizze - A probabilistic data-structures service and storage.數據結構服務和存儲
源: https://my.oschina.net/editorial-story/blog/838672github