1. 程式人生 > >優秀的 Go 存儲開源項目和庫

優秀的 Go 存儲開源項目和庫

arw term 分布式文件系 測試的 gary struct 吞吐量 str nosql

可以看到,今年谷歌家的 Go 編程語言流行度有著驚人的上升趨勢,其發展也是越來越好,因此本文整理了一些優秀的 Go 存儲相關開源項目和庫,一起分享,一起學習。

存儲服務器(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 將遷移嵌入到應用程序中

數據庫工具

  • go-mysql - Go 實現的用於處理 MySQL 協議和復制的工具集
  • go-mysql-elasticsearch - 將 MySQL 數據自動同步到 Elasticsearch 中
  • kingshard - Go 實現的高性能 MySQL Proxy 項目
  • myreplication - MySQL 二進制日誌復制監聽器。支持語句和基於行的復制
  • orchestrator - MySQL 復制拓撲管理器和可視化工具
  • pgweb - Go 實現的基於 Web 的 PostgreSQL 數據庫管理系統
  • vitess - 分布式 MySQL 工具集。vitess 提供了服務器和工具,以便於大規模 Web 服務的 MySQL 數據庫擴展

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

數據庫驅動

用於連接和操作數據庫的庫

關系數據庫

  • bgc - Go 實現的用於 BigQuery 的數據存儲連接
  • firebirdsql - Firebird RDBMS SQL 驅動
  • go-adodb - Microsoft ActiveX Object 數據庫驅動,使用 database/sql
  • go-bqstreamer - BigQuery 快速並發流插入
  • go-mssqldb - Microsoft MSSQL 驅動
  • go-oci8 - Oracle 驅動,使用 database/sql
  • go-sql-driver/mysql - MySQL 驅動
  • go-sqlite3 - SQLite3 驅動,使用 database/sql
  • gofreetds - Microsoft MSSQL 驅動。Go wrapper over FreeTDS.
  • pgx - PostgreSQL 驅動
  • pq - Go 實現的用於 database/sql 的 Postgres 驅動

NoSQL 數據庫

  • aerospike-client-go - Go 實現的 Aerospike 客戶端
  • arangolite - Go 實現的 ArangoDB 輕量級驅動程序
  • asc - 用於 Aerospike 的數據存儲連接
  • cayley - 支持多個後端的圖形數據庫
  • dsc - 用於 SQL, NoSQL 以及結構化文件的數據存儲連接
  • dynago - DynamoDB 的客戶端
  • go-couchbase - Go 實現的 Couchbase 客戶端
  • go-couchdb - Go 實現的 CouchDB HTTP API 封裝包
  • gocb - 官方的 Couchbase Go SDK 包
  • gocql - Go 實現的 Apache Cassandra 驅動
  • gomemcache - memcache 客戶端庫
  • gorethink - RethinkDB 驅動
  • goriak - Riak KV 驅動
  • mgo - MongoDB 驅動,它根據標準 Go 習慣用法在非常簡單的 API 下實現豐富且經過良好測試的功能選擇
  • neo4j - Neo4j Rest API 綁定
  • Neo4j-GO - Neo4j REST 客戶端
  • neoism - Neo4j client 客戶端
  • redigo - Redis 數據庫客戶端
  • redis - Redis 客戶端
  • redis - 簡單強大的 Redis 客戶端
  • redis - Redis 協議兼容 TCP servers/services

搜索和分析數據庫

  • bleve - 現代文本索引庫
  • elastic - Elasticsearch 客戶端
  • elastigo - Elasticsearch 客戶端庫
  • goes - 與 Elasticsearch 交互的庫
  • skizze - A probabilistic data-structures service and storage.數據結構服務和存儲

源: https://my.oschina.net/editorial-story/blog/838672

優秀的 Go 存儲開源項目和庫