可以看到,今年谷歌家的 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 将迁移嵌入到应用程序中
数据库工具
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 代码
数据库驱动
用于连接和操作数据库的库
关系数据库
NoSQL 数据库
搜索和分析数据库
-
bleve - 现代文本索引库
-
elastic - Elasticsearch 客户端
-
elastigo - Elasticsearch 客户端库
-
goes - 与 Elasticsearch 交互的库
-
skizze - A probabilistic data-structures service and storage.数据结构服务和存储
源: https://my.oschina.net/editorial-story/blog/838672
|
请发表评论