可以看到,今年谷歌家的 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 存储开源项目和库的更多相关文章

  1. iOS、mac开源项目及库汇总

    原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499    iOS每日一记------------之 中级完美大整理 iOS.m ...

  2. Android开源项目及库搜集

    TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending,github搜索:https://github.com/ ...

  3. Android 开源项目及库汇总(2)

    Android 开源项目及库汇总(2) ListenToCode 2.7 2018.10.10 15:43 字数 8527 阅读 1001评论 0喜欢 29 地图 百度地图– Android百度地图 ...

  4. ios开发与安卓开源项目及库

    自己总结的iOS.mac开源项目及库 https://github.com/Tim9Liu9/TimLiu-iOS 自己总结的Android开源项目及库 https://github.com/Tim9 ...

  5. 59.Android开源项目及库 (转)

    转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...

  6. iOS、mac开源项目及库(感谢原作者的分享)

    目录 模糊效果 富文本 表相关 HUD与Toast 其他UI 其他动画 网络测试 网络聊天 Model 数据库 PDF 摄像照相视频音频处理 消息相关 消息推送服务器端 版本新API的Demo 测试及 ...

  7. iOS -- 开源项目和库

    TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 ...

  8. Github上优秀的.NET Core开源项目的集合

    内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/ ...

  9. 值得学习的C语言开源项目和库

    收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具. ...

随机推荐

  1. 1120 Friend Numbers (20 分)

    1120 Friend Numbers (20 分) Two integers are called "friend numbers" if they share the same ...

  2. optparse模块解析命令行参数的说明及优化

    一.关于解析命令行参数的方法 关于“解析命令行参数”的方法我们一般都会用到sys.argv跟optparse模块.关于sys.argv,网上有一篇非常优秀的博客已经介绍的很详细了,大家可以去这里参考: ...

  3. ArcMap VBA实现连续编号

    连续编号VBA部分:Static lCount as longlCount=lCount+1赋值部分:lCount (从1开始)lCount-1 (从0开始)

  4. 常用docker镜像

    oracle12c: mkdir -p /path/to/oradata docker run --name oracle12c \ -p 1521:1521 -p 5500:5500 \ -v /p ...

  5. Linux安装jsvc,及Linux服务开发

    在linux上以服务的方式启动java程序,需要提前安装jsvc.linux是利用daemon(jsvc)构建java守护进程. 编译 daemon 安装JSVC 1 下载文件,http://comm ...

  6. [TFS]TFS2015禁止多人迁出设置

  7. php namespace use 研究

    1.file1.php: <?php namespace foos; class demo{ function testfn(){ echo "sdlkfjskdjf"; } ...

  8. Dom4j解析、生成Xml

    1以下代码未Xml的解析和生成代码 <?xml version="1.0" encoding="UTF-8"?> <users> < ...

  9. java中六个时间类的使用和区别

    java.util.Date java.sql.Date   java.sql.Time   java.sql.Timestamp java.text.SimpleDateFormat java.ut ...

  10. 用Java实现adb命令的各种方式

    package com.function; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.D ...