优秀的 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– Golang 语言实现的一个内存中的缓存框架,实现 Key-Value 的序列存储,适用于单台机器应用程序

biscuit– Biscuit 用于 AWS 基础架构建设时多区域 HA key-value 存储

diskv– 支持磁盘的 key-value 存储

文件系统(File System)

Go 实现的文件系统

git-lfs– 用于大文件版本控制的 Git 扩展

seaweedfs– SeaweedFS 是一个用于小文件的简单且高度可扩展的分布式文件系统

fsnotify– Golang 实现的跨平台文件系统监控库

goofys– Golang 实现的高性能,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– Golang 实现的低层级的 key/value 数据库

buntdb– 一个 Go 实现的快速、可嵌入的 key/value 内存数据库,具有自定义索引和 geospatial 支持的功能

cache2go– key/value 内存缓存,支持基于超时的自动无效功能

cockroach– 一个可伸缩的、支持地理位置处理、支持事务处理的数据存储系统

couchcache– 由 Couchbase 服务器支持的 RESTful 缓存微服务

dgraph– 具有可扩展、分布式、低延迟和高吞吐量功能的图形数据库

eliasdb– 使用 REST API,短语搜索和类似 SQL 查询语言的无依赖性,支持事务处理的图形数据库

forestdb– Golang 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 theLevelDBkey/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– Golang 实现的数据库迁移处理,支持 MySQL, PostgreSQL, Cassandra, 和 SQLite

pravasan– 简单的迁移工具,目前支持 MySQL,PostgreSQL,但计划很快支持 SQLite, MongoDB 等

soda– 具有数据库迁移、创建和 ORM 等功能,适用于 MySQL, PostgreSQL, 和 SQLite

sql-migrate– 数据库 schema 迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中

数据库工具

go-mysql– Golang 实现的用于处理 MySQL 协议和复制的工具集

go-mysql-elasticsearch– 将 MySQL 数据自动同步到 Elasticsearch 中

kingshard– Golang 实现的高性能 MySQL Proxy 项目

myreplication– MySQL 二进制日志复制监听器。支持语句和基于行的复制

orchestrator– MySQL 复制拓扑管理器和可视化工具

pgweb– Go 实现的基于 Web 的 PostgreSQL 数据库管理系统

vitess– 分布式 MySQL 工具集。vitess 提供了服务器和工具,以便于大规模 Web 服务的 MySQL 数据库扩展

SQL 查询构建器,用于构建和使用 SQL 的库

dat– Go 实现的 Postgres 数据访问工具包

Dotsql– Golang 语言实现的库,可帮助你将 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 overFreeTDS.

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– Golang 实现的 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://github.com/gostor/awesome-go-storage

    原文作者:一只名叫二狗的猫
    原文地址: https://www.jianshu.com/p/2fd16f07202d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞