{"id":13394635,"url":"https://github.com/gostor/awesome-go-storage","last_synced_at":"2025-09-27T10:31:25.912Z","repository":{"id":37663990,"uuid":"80917582","full_name":"gostor/awesome-go-storage","owner":"gostor","description":"A curated list of awesome Go storage projects and libraries","archived":false,"fork":false,"pushed_at":"2023-12-30T01:38:15.000Z","size":84,"stargazers_count":4306,"open_issues_count":4,"forks_count":289,"subscribers_count":148,"default_branch":"master","last_synced_at":"2024-05-23T02:31:52.679Z","etag":null,"topics":["awesome","awesome-list","golang","hacktoberfest","storage"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gostor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-02-04T12:20:13.000Z","updated_at":"2024-05-21T13:34:51.000Z","dependencies_parsed_at":"2024-01-08T07:59:58.807Z","dependency_job_id":null,"html_url":"https://github.com/gostor/awesome-go-storage","commit_stats":{"total_commits":61,"total_committers":42,"mean_commits":"1.4523809523809523","dds":0.819672131147541,"last_synced_commit":"eee1e4aedbf211003bcebd3bdf8f706bf08a90d5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gostor%2Fawesome-go-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gostor%2Fawesome-go-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gostor%2Fawesome-go-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gostor%2Fawesome-go-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gostor","download_url":"https://codeload.github.com/gostor/awesome-go-storage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219871582,"owners_count":16554424,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","golang","hacktoberfest","storage"],"created_at":"2024-07-30T17:01:26.407Z","updated_at":"2025-09-27T10:31:20.872Z","avatar_url":"https://github.com/gostor.png","language":null,"funding_links":[],"categories":["HarmonyOS","Misc","Others","Awesome","go存储项目","Programming Language Lists","golang","Curated Lists","Libraries","tools"],"sub_categories":["Windows Manager","Go Lists","Video Conference"],"readme":"# Awesome Go Storage [![Awesome](https://cdn.jsdelivr.net/gh/sindresorhus/awesome@d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\n\nA curated list of awesome Go storage projects and libraries. Inspired by [awesome-go](https://github.com/avelino/awesome-go).\n\n\n### Contributing\n\nPlease take a quick gander at the [contribution guidelines](https://github.com/gostor/awesome-go-storage/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/gostor/awesome-go-storage/graphs/contributors); you rock!\n\n#### *If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!*\n\n\n### Contents\n\n- [Awesome Go Storage](#awesome-go-storage)\n    - [Storage Server](#storage-server)\n    - [Key-Value Store](#key-value-store)\n    - [File System](#file-system)\n    - [Database](#database)\n    - [Database Drivers](#database-drivers)\n\n\n## Storage Server\n\n*Storage Servers implemented in Go.*\n\n* [minio](https://github.com/minio/minio) - Minio is an open source object storage server compatible with Amazon S3 APIs.\n* [rclone](https://github.com/ncw/rclone) - \"rsync for cloud storage\" - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfile…\n* [perkeep](https://github.com/perkeep/perkeep) - Perkeep is your personal storage system for life: a way of storing, syncing, sharing, modelling and backing up content.\n* [s3git](https://github.com/s3git/s3git) - Git for Cloud Storage. Distributed Version Control for Data.\n* [storj](https://github.com/storj/storj) - Decentralized cloud object storage that is affordable, easy to use, private, and secure. \n* [rook](https://github.com/rook/rook) - Open, Cloud Native, and Universal Distributed Storage.\n* [longhorn](https://github.com/rancher/longhorn) - Longhorn is an open source persistent block storage server delivered via containers. \n\n## Key-Value Store\n\n*Key-Value Store implemented in Go.*\n\n* [Bitcask](https://git.mills.io/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL).\n* [Bitraft](https://git.mills.io/prologic/bitraft) - Bitraft is a distributed raft-based key/value store with a Redis-compatible protocol. It uses [Bitcask](https://git.mills.io/prologic/bitcask) for high performance/throughout and low latency.\n* [BadgerDB](https://github.com/dgraph-io/badger) - BadgerDB is an embeddable, persistent, simple and fast key-value (KV) database written in pure Go. It's meant to be a performant alternative to non-Go-based key-value stores like RocksDB.\n* [column](https://github.com/kelindar/column) - Embeddable, columnar, in-memory store with bitmap indexing, transaction and zero-alloc quering.\n* [consul](https://github.com/hashicorp/consul) - Distributed consistent replicated key-value store for service discovery and configuration.\n* [diskv](https://github.com/peterbourgon/diskv) - A disk-backed key-value store.\n* [etcd](https://github.com/coreos/etcd) - Distributed reliable key-value store for the most critical data of a distributed system.\n* [go-cache](https://github.com/patrickmn/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.\n* [IceFireDB](https://github.com/IceFireDB/IceFireDB) - Distributed disk storage database using the Raft and Redis protocols.\n* [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.\n* [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads.\n* [rosedb](https://github.com/roseduan/rosedb) - A fast, stable and embedded k-v database in pure Golang, supports string, list, hash, set, sorted set.\n* [LotusDB](https://github.com/flower-corp/lotusdb) - Fast k/v storage compatible with lsm tree and b+tree.\n\n## File System\n\n*File Systems implemented in Go.*\n\n* [afero](https://github.com/spf13/afero) - A FileSystem Abstraction System for Go\n* [fsnotify](https://github.com/fsnotify/fsnotify) - Cross-platform file system notifications for Go.\n* [juicefs](https://github.com/juicedata/juicefs) - A distributed POSIX file system built on top of Redis and S3.\n* [gcsfuse](https://github.com/GoogleCloudPlatform/gcsfuse) - A user-space file system for interacting with Google Cloud Storage.\n* [git-lfs](https://github.com/git-lfs/git-lfs) - Git extension for versioning large files.\n* [go-systemd](https://github.com/coreos/go-systemd) - Go bindings to systemd socket activation, journal, D-Bus, and unit files.\n* [goofys](https://github.com/kahing/goofys) - A high-performance, POSIX-ish Amazon S3 file system written in Go.\n* [minikeyvalue](https://github.com/geohot/minikeyvalue) - A ~1000 line distributed key value store.\n* [seaweedfs](https://github.com/chrislusf/seaweedfs) - SeaweedFS is a simple and highly scalable distributed file system for small files.\n* [svfs](https://github.com/ovh/svfs) - A virtual file system over Openstack Swift built upon fuse.\n\n\n## Database\n\n*Databases implemented in Go.*\n\n* [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data.\n* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. This original version by Ben Johnson has been marked as unmaintained and forked by [etcd-io bbolt](https://github.com/etcd-io/bbolt).\n* [buntdb](https://github.com/tidwall/buntdb) - A fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support.\n* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts.\n* [clover](https://github.com/ostafen/clover) - A lightweight document-oriented NoSQL database written in pure Golang.\n* [cockroach](https://github.com/cockroachdb/cockroach) - A Scalable, Geo-Replicated, Transactional Datastore\n* [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server.\n* [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - A SQL Database with Blockchain features.\n* [dgraph](https://github.com/dgraph-io/dgraph) - Scalable, Distributed, Low Latency, High Throughput Graph Database.\n* [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store.\n* [dolt](https://github.com/dolthub/dolt) - A MySQL-compatible database with Git-style version control. The first SQL database you can branch and merge.\n* [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language.\n* [emitter](https://github.com/emitter-io/emitter) - Scalable, low-latency, distributed \u0026 secure pub/sub database with time-series message storage, suitable for IoT, gaming, apps and real-time web.\n* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB.\n* [frostdb](https://github.com/polarsignals/frostdb/) - Embeddable column database written in Go. \n* [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC.\n* [geocache](https://github.com/melihmucuk/geocache) - An in-memory cache that is suitable for geolocation based applications.\n* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.\n* [godis](https://github.com/hdt3213/godis) - A Golang implemented high-performance Redis server and cluster\n* [goleveldb](https://github.com/syndtr/goleveldb) - An implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in the Go.\n* [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.\n* [immudb](https://github.com/codenotary/immudb) - Database with built-in cryptographic proof and verification. Can operate as a key-value store or as relational database (SQL).\n* [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics\n* [ledisdb](https://github.com/siddontang/ledisdb) - Ledisdb is a high performance NoSQL like Redis based on LevelDB.\n* [levigo](https://github.com/jmhodges/levigo) - Levigo is a Go wrapper for LevelDB.\n* [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go.\n* [noms](https://github.com/attic-labs/noms) - The versioned, forkable, syncable database.\n* [objectbox-go](https://github.com/objectbox/objectbox-go) - Embedded Object Database (NoSQL) with Go API.\n* [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures.\n* [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database.\n* [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database.\n* [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite.\n* [scribble](https://github.com/nanobox-io/golang-scribble) - A tiny flat file JSON store.\n* [SpiceDB](https://github.com/authzed/spicedb) - A [Zanzibar](https://research.google/pubs/pub48190/)-inspired database that stores, computes, and validates application permissions with support for multiple database backends.\n* [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1.\n* [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang.\n* [Tile38](https://github.com/tidwall/tile38) - A geolocation DB with spatial index and realtime geofencing.\n* [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - Time series database designed for monitoring, compatible with PromQL (from Promethueus) and InfluxQL (from Influxdb).\n\n*Database schema migration.*\n\n* [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go\n* [goose](https://github.com/steinbacher/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts.\n* [gormigrate](https://github.com/go-gormigrate/gormigrate) - Database schema migration helper for Gorm ORM.\n* [migrate](https://github.com/golang-migrate/migrate) - Database migration handling in Golang support MySQL, PostgreSQL, Cassandra, and SQLite.\n* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc.,\n* [soda](https://github.com/markbates/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.\n* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata.\n\n*Database tools.*\n\n* [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication.\n* [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically.\n* [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang.\n* [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication.\n* [orchestrator](https://github.com/openark/orchestrator) - MySQL replication topology manager \u0026 visualizer\n* [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser\n* [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.\n* [usql](https://github.com/xo/usql) - universal command-line interface for SQL databases\n\n*SQL query builder, libraries for building and using SQL.*\n\n* [buildsqlx](https://github.com/arthurkushman/buildsqlx) - Go Database query builder library\n* [dat](https://github.com/mgutz/dat) - Go Postgres Data Access Toolkit\n* [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use it with ease.\n* [goqu](https://github.com/doug-martin/goqu) - An idiomatic SQL builder and query library.\n* [grimoire](https://github.com/Fs02/grimoire) - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3).\n* [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax.\n* [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities.\n* [SQLBoiler](https://github.com/volatiletech/sqlboiler) - a tool to generate a Go ORM tailored to your database schema. It is a \"database-first\" ORM as opposed to \"code-first\", and you must first create your database.\n* [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance.\n* [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries.\n* [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.\n\n\n## Database Drivers\n\n*Libraries for connecting and operating databases.*\n\n* Relational Databases\n    * [bgc](https://github.com/viant/bgc) - Datastore Connectivity for BigQuery for go.\n    * [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go\n    * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql.\n    * [go-bqstreamer](https://github.com/rounds/go-bqstreamer) - BigQuery fast and concurrent stream insert.\n    * [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver in go language.\n    * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql.\n    * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go.\n    * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql.\n    * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org).\n    * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql.\n    * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql.\n\n* NoSQL Databases\n    * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language.\n    * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB.\n    * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go.\n    * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends.\n    * [dsc](https://github.com/viant/dsc) - Datastore connectivity for SQL, NoSQL, structured files.\n    * [dynago](https://github.com/underarmour/dynago) - Dynago is a principle of least surprise client for DynamoDB\n    * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go\n    * [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go\n    * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK\n    * [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra.\n    * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language.\n    * [gorethink](https://github.com/GoRethink/gorethink) - Go language driver for RethinkDB\n    * [goriak](https://github.com/zegl/goriak) - Go language driver for Riak KV   \n    * [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - The Go driver for MongoDB\n    * [neo4j](https://github.com/cihangir/neo4j) - Neo4j Rest API Bindings for Golang\n    * [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang.\n    * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang\n    * [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database.\n    * [redis](https://github.com/go-redis/redis) - Redis client for Golang\n    * [redis](https://github.com/hoisie/redis) - A simple, powerful Redis client for Go.\n    * [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services.\n\n* Search and Analytic Databases\n    * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go.\n    * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go.\n    * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library.\n    * [skizze](https://github.com/seiflotfy/skizze) - A probabilistic data-structures service and storage.\n\n* Multiple Backends\n    * [Fiber Storage](https://github.com/gofiber/storage) - Premade storage drivers that implement the [Storage](https://github.com/gofiber/storage/blob/main/storage.go) interface. \n    * [gokv](https://github.com/philippgille/gokv) - A simple key-value store interface and many implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgostor%2Fawesome-go-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgostor%2Fawesome-go-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgostor%2Fawesome-go-storage/lists"}