优秀的 Go 存储开源项目和库
可以看到,今年谷歌家的 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 存储开源项目和库的更多相关文章
- iOS、mac开源项目及库汇总
原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499 iOS每日一记------------之 中级完美大整理 iOS.m ...
- Android开源项目及库搜集
TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending,github搜索:https://github.com/ ...
- Android 开源项目及库汇总(2)
Android 开源项目及库汇总(2) ListenToCode 2.7 2018.10.10 15:43 字数 8527 阅读 1001评论 0喜欢 29 地图 百度地图– Android百度地图 ...
- ios开发与安卓开源项目及库
自己总结的iOS.mac开源项目及库 https://github.com/Tim9Liu9/TimLiu-iOS 自己总结的Android开源项目及库 https://github.com/Tim9 ...
- 59.Android开源项目及库 (转)
转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...
- iOS、mac开源项目及库(感谢原作者的分享)
目录 模糊效果 富文本 表相关 HUD与Toast 其他UI 其他动画 网络测试 网络聊天 Model 数据库 PDF 摄像照相视频音频处理 消息相关 消息推送服务器端 版本新API的Demo 测试及 ...
- iOS -- 开源项目和库
TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 ...
- Github上优秀的.NET Core开源项目的集合
内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/ ...
- 值得学习的C语言开源项目和库
收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具. ...
随机推荐
- MySQL数据库InnoDB存储引擎中的锁机制(转载)
http://www.uml.org.cn/sjjm/201205302.asp 00 – 基本概念 当并发事务同时访问一个资源的时候,有可能导致数据不一致.因此需要一种致机制来将访问顺序化. 锁就是 ...
- [UE4]Datasmith
Datasmith 是帮助您将内容导入到虚幻引擎4中的一组工具和插件. 作为虚幻工作室产品的部分,Datasmith设计用于解决非游戏行业人士所面临的独特挑战,例如建筑.工程.建造.制造.实时培训等行 ...
- 基础回顾之List集合
1.List集合的的contains()方法底层调用的是equals()方法,当比较自定义对象时,需要重写比较对象的equals()方法 2.List集合的remove()方法底层依赖的也是equal ...
- 如何查看yum 安装的软件路径
1.首先安装一个redis [root@iZbp1eem925ojwyx17ao9kZ ~]# yum install redis 2.查找redis的安装包 [root@iZbp1eem925ojw ...
- RHEL7或CentOS7安装11.2.0.4 RAC碰到的问题
RHEL7或CentOS7安装11.2.0.4 RAC碰到的问题 随着Linux 版本的普及,但Oracle数据库主流版本仍是11gR2, 的支持不很完美,在Linux 上安装会遇到几处问题,以此记录 ...
- for练习.html
<script> 偶数 var str=""; for (var i = 1 ; i <= 100; i++){ if (i%2 == 0) { //str = ...
- CVPR 2019 | 用异构卷积训练深度CNN:提升效率而不损准确度
对于深度卷积神经网络而言,准确度和计算成本往往难以得兼,研究界也一直在探索通过模型压缩或设计新型高效架构来解决这一问题.印度理工学院坎普尔分校的一篇 CVPR 论文则给出了一个新的思路——使用异构的卷 ...
- NUMA的取舍与优化设置
在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%; 在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能. 安装numactl: ...
- Solr——从postgresql数据库导入数据
1,配置准备 本文的前提是你已经配置好了solr,并新创建了一个core,我们下面都会按照前一篇文章中的core_demo为基础开始 2,修改soreconfig.xml 在soreconfig.xm ...
- 爬虫概念 requests模块
requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...