Go开源项目收集整理

目录

存储

  • minio - Minio是一个与Amazon S3接口兼容的开源对象存储服务器。
  • rclone - "云存储异步存储" - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfile…
  • perkeep - Perkeep是一款个人存储系统:存储、同步、共享、建模和备份个人内容。
  • s3git - 云存储Git,可用于数据的分布式版本控制。
  • storj - 分散的云对象存储,价格合理、易于使用、私有且安全。
  • rook - 开放、云本机和通用分布式存储。
  • longhorn - Longhorn是一个通过容器交付的开源持久块存储服务器。

Key-Value键值对存储

  • Bitcask - Bitcask是一个可嵌入的、持久的、快速的键值(KV)数据库,使用纯Go编写,具有可预测的读/写性能、低延迟和高吞吐量,这得益于Bitcask磁盘布局(LSM+WAL)。
  • Bitraft - Bitraft是一种基于raft的分布式密钥/值存储,具有与Redis兼容的协议。 它使用了 Bitcask 实现高性能/吞吐量和低延迟。
  • BadgerDB - BadgerDB是一个可嵌入的、持久的、简单快速的键值(KV)数据库,用纯Go编写。它的目的是成为RocksDB等基于Go的键值存储的性能替代品。
  • biscuit - Biscuit是一个多区域HA键值存储库,用于存储AWS基础设施机密。
  • consul - 用于服务发现和配置的分布式一致复制键值存储。
  • diskv - 磁盘备份的键值存储。
  • etcd - 分布式系统中最关键数据的分布式可靠键值存储。
  • go-cache - 记忆中的记忆键:值存储/缓存(类似于Memcached)library for Go,适合单机应用。
  • nutsdb - Nutsdb是一个用纯Go编写的简单、快速、可嵌入、持久的键/值存储。它支持完全可序列化的事务和许多数据结构,如列表、集合、排序集。

文件系统

  • afero - GO编写的文件抽象系统。
  • fsnotify - Go的跨平台文件系统通知。
  • gcsfuse - 与Google云存储交互的用户空间文件系统。
  • git-lfs - 用于控制大文件版本的Git扩展。
  • go-systemd - Go绑定到systemd套接字激活、日志、D-Bus和单元文件
  • goofys - 用Go编写的高性能POSIX-ish Amazon s3文件系统。
  • minikeyvalue - 1000行分布式键值存储。
  • seaweedfs - SeaweedFS是一个简单且高度可扩展的分布式文件系统,适用于小文件。
  • svfs - 基于fuse的Openstack Swift虚拟文件系统。

数据库

  • BigCache - 针对千兆字节数据的高效键/值缓存。
  • bolt - 低级键/值数据库。
  • buntdb - 一个快速的、可嵌入的、内存中的键/值数据库,支持自定义索引和空间。
  • cache2go - 支持时间超时自动失效的内存key/value的数据库。
  • cockroach - 可扩展的地理数据存储。
  • couchcache - 基于Couchbase服务器的Restful缓存微服务。
  • CovenantSQL - 具有区块链功能的SQL数据库。
  • dgraph - 可扩展、分布式、低延迟、高吞吐量的图形数据库。
  • diskv - 自制的磁盘备份键值存储。
  • eliasdb - 无依赖关系的事务性图形数据库,带有RESTAPI、短语搜索和类似SQL的查询语言。
  • emitter - 可扩展、低延迟、分布式和安全的发布/子数据库,具有时间序列消息存储,适用于物联网、游戏、应用程序和实时web。
  • forestdb - ForestDB的绑定。
  • GCache - 缓存库,支持过期缓存、LFU、LRU和ARC。
  • geocache - 适用于基于地理位置的应用程序的内存缓存。
  • go-cache - 存储于内存的健/值对存储数据库(类似于memcached),适用于单机。
  • goleveldb - [LevelDB] (https://github.com/google/leveldb) 健/值对数据库扩展。
  • groupcache -
    Groupcache是一个缓存和缓存填充库,在许多情况下可以替代memcached。
  • influxdb - 用于度量、事件和实时分析的可扩展数据存储。
  • ledisdb - Ledisdb是一个基于LevelDB的高性能NoSQL类Redis。
  • levigo - Levigo是LevelDB的Go包装器。
  • moss - Moss是一个用100%Go编写的简单LSM键值存储引擎。
  • noms - 版本化的、可分叉的、可同步的数据库。
  • nutsdb - Nutsdb是一个用纯Go编写的简单、快速、可嵌入、持久的键/值存储。它支持完全可序列化的事务和许多数据结构,如列表、集合、排序集。
  • piladb - 基于栈数据结构的轻量级RESTful数据库引擎。
  • pREST - 提供来自任何PostgreSQL数据库的restfulapi。
  • prometheus - 监控系统和时间序列数据库。
  • rqlite - 基于SQLite的轻量级分布式关系数据库。
  • scribble - 一个小的平面文件JSON存储。
  • tidb - TiDB是一个分布式SQL数据库。灵感来自谷歌F1的设计。
  • tiedot - GO写的NOSQL数据库。
  • Tile38 - 具有空间索引和实时地理围栏的地理位置数据库。

数据库迁移工具

  • darwin - Go数据库模式演化库
  • goose - 数据库迁移工具。您可以通过创建增量SQL或Go脚本来管理数据库的发展。
  • gormigrate - Gorm ORM的数据库架构迁移帮助程序。
  • migrate - Database migration handling in Golang support MySQL, PostgreSQL, Cassandra, and SQLite.
  • pravasan - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc.,
  • soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.
  • sql-migrate - Database migration tool. Allows embedding migrations into the application using go-bindata.

Database tools.

  • go-mysql - A go toolset to handle MySQL protocol and replication.
  • go-mysql-elasticsearch - Sync your MySQL data into Elasticsearch automatically.
  • kingshard - kingshard is a high performance proxy for MySQL powered by Golang.
  • myreplication - MySql binary log replication listener. Support statement and row based replication.
  • orchestrator - MySQL replication topology manager & visualizer
  • pgweb - A web-based PostgreSQL database browser
  • vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
  • usql - universal command-line interface for SQL databases

SQL query builder, libraries for building and using SQL.

  • buildsqlx - Go Database query builder library
  • dat - Go Postgres Data Access Toolkit
  • Dotsql - Go library that helps you keep sql files in one place and use it with ease.
  • goqu - An idiomatic SQL builder and query library.
  • grimoire - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3).
  • igor - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax.
  • ozzo-dbx - Powerful data retrieval methods as well as DB-agnostic query building capabilities.
  • 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.
  • sqrl - SQL query builder, fork of Squirrel with improved performance.
  • Squirrel - Go library that helps you build SQL queries.
  • xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.

Database Drivers

Libraries for connecting and operating databases.

  • Relational Databases

    • bgc - Datastore Connectivity for BigQuery for go.
    • firebirdsql - Firebird RDBMS SQL driver for Go
    • go-adodb - Microsoft ActiveX Object DataBase driver for go that using database/sql.
    • go-bqstreamer - BigQuery fast and concurrent stream insert.
    • go-mssqldb - Microsoft MSSQL driver in go language.
    • go-oci8 - Oracle driver for go that using database/sql.
    • go-sql-driver/mysql - MySQL driver for Go.
    • go-sqlite3 - SQLite3 driver for go that using database/sql.
    • gofreetds Microsoft MSSQL driver. Go wrapper over FreeTDS.
    • pgx - PostgreSQL driver supporting features beyond those exposed by database/sql.
    • pq - Pure Go Postgres driver for database/sql.
  • NoSQL Databases

    • aerospike-client-go - Aerospike client in Go language.
    • arangolite - Lightweight golang driver for ArangoDB.
    • asc - Datastore Connectivity for Aerospike for go.
    • cayley - A graph database with support for multiple backends.
    • dsc - Datastore connectivity for SQL, NoSQL, structured files.
    • dynago - Dynago is a principle of least surprise client for DynamoDB
    • go-couchbase - Couchbase client in Go
    • go-couchdb - Yet another CouchDB HTTP API wrapper for Go
    • gocb - Official Couchbase Go SDK
    • gocql - A Go language driver for Apache Cassandra.
    • gomemcache - memcache client library for the Go programming language.
    • gorethink - Go language driver for RethinkDB
    • goriak - Go language driver for Riak KV
    • mongo-go-driver - The Go driver for MongoDB
    • neo4j - Neo4j Rest API Bindings for Golang
    • Neo4j-GO - Neo4j REST Client in golang.
    • neoism - Neo4j client for Golang
    • redigo - Redigo is a Go client for the Redis database.
    • redis - Redis client for Golang
    • redis - A simple, powerful Redis client for Go.
    • redis - Redis-protocol compatible TCP servers/services.
  • Search and Analytic Databases

    • bleve - A modern text indexing library for go.
    • elastic - Elasticsearch client for Go.
    • elastigo - A Elasticsearch client library.
    • skizze - A probabilistic data-structures service and storage.
  • Multiple Backends

    • 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)

发表评论

电子邮件地址不会被公开。 必填项已用*标注