一文带你了解优秀的Go 语言开源项目

前言

由于Go语言的发展势头越来越猛,最近整理了许多关于GO语言的开源项目,共同学习,共同交流,共同进步。

1.文件系统(File System)篇

  1. 用于大文件版本控制的 Git 扩展–git-lfs
  2. 用于小文件的简单且高度可扩展的分布式文件系统–SeaweedFS
  3. Go 实现的跨平台文件系统监控库–fsnotify
  4. Go 实现的高性能,POSIX-ish Amazon S3 文件系统–goofys
  5. 基于 Openstack 的虚拟文件系统–svfs

2.数据库(Database)篇

1.Go 实现的数据库

  1. Go 实现的低层级的 key/value 数据库–bolt
  2. Go 实现的快速、可嵌入的 key/value 内存数据库,具有自定义索引和 geospatial 支持的功能–buntdb
  3. 一个可伸缩的、支持地理位置处理、支持事务处理的数据存储系统–cockroach
  4. 具有可扩展、分布式、低延迟和高吞吐量功能的图形数据库–dgraph
  5. 使用 REST API,短语搜索和类似 SQL 查询语言的无依赖性,支持事务处理的图形数据库–eliasdb
  6. 基于 Go 的 NoSQL 数据库–tiedot
  7. 一个小型的 Flat File JSON 存储–scribble
  8. 基于 SQLite 构建的轻量级、分布式关系数据库–rqlite
  9. 为任何来自 PostgreSQL 的数据库提供一个 RESTful API–pREST

2.数据库驱动

用于连接和操作数据库的库

  1. MySQL 驱动–go-sql-driver/mysql
  2. SQLite3 驱动,使用 database/sql–go-sqlite3
  3. PostgreSQL 驱动–Pgx
  4. Go 实现的用于 database/sql 的 Postgres 驱动–Pq
  5. Oracle 驱动,使用 database/sql–go-oci8
  6. 简单强大的 Redis 客户端–redis
  7. Elasticsearch 客户端–elastic

3.数据库迁移

  1. 具有数据库迁移、创建和 ORM 等功能,适用于 MySQL, PostgreSQL, 和 SQLite–soda
  2. Go 实现的数据库迁移处理,支持 MySQL, PostgreSQL, Cassandra, 和 SQLite–migrate
  3. 数据库 schema 迁移工具。允许使用 go-bindata 将迁移嵌入到应用程序中–sql-migrate
  4. Gorm ORM 的数据库迁移助手–gormigrate

3.微服务篇

  1. go-kit/kit–Go-kit 是一个 Go 语言的分布式开发包,用于开发微服务。
  2. goadesign/goa–Goa 是一款用 Go 用于构建微服务的框架,采用独特的设计优先的方法。
  3. koding/kite–一个基于go语言的微服务框架, Kite是Koding公司内部的一个框架, 该框架提供服务发现,多种认证功能,服务端通过RPC进行通信,同时还提供了websocket的js库,方便浏览器于服务器间进行通信。

4.存储技术

  1. ipfs/go-ipfs–IPFS 是分布式文件系统,寻求连接所有计算机设备的相同文件系统。在某些方面,这很类似于原始的 Web 目标,但是 IPFS 最终会更像单个比特流群交换的 git 对象。IPFS = InterPlanetary File System。
  2. Terry-Mao/bfs–bfs 是使用 Go 编写的分布式文件系统(小文件存储)。
  3. gostor/gotgt–Gotgt 是使用 Go 编写的高性能、可扩展的 iSCSI target 服务。

5.Go Web API 利器 Faygo

Faygo 使用全新架构,是最合适开发API接口的Go Web框架。用户只需定义一个struct Handler,就能自动绑定、验证请求参数并生成在线API文档。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45066628/article/details/120847856