Golang 比较优秀的第三方库和项目
# Golang 比较优秀第三方库和项目
# Web 开发相关
# Web 框架
- gin (opens new window):Gin 是一个用 Go 编写的 web 框架,相信很多 gopher 都在使用
- echo (opens new window):高性能、可扩展、简约的 Go web 框架
- iris (opens new window):Iris 是一个快速、简单但功能齐全且非常高效的 Go 网络框架
- fasthttp (opens new window):最快的go http服务器,不支持http2.0,有性能需求时可以考虑使用
# protobuf
- protobuf (opens new window):官方的 protobuf 库
# RPC
# DDD 框架
- wild-workouts-go-ddd-example (opens new window):Go DDD 示例项目,旨在展示如何构建 易于开发、维护且有趣的 Go 应用程序
# 测试
# 单元测试
- testify (opens new window):非常好用的一个测试库,提供了一组全面的测试工具,可与常规 Go 测试系统一起使用
- mock (opens new window):单元测试利器,gomock 是 Go 编程语言的 mocking 框架
- go-sqlmock (opens new window):sqlmock是 一个实现 sql/driver (opens new window) 的 mock 库
- miniredis (opens new window):纯 Go Redis 测试服务器,用于 Go 单元测试
# 配置读写
- toml (opens new window):大多数 go 程序都使用 toml 做为配置文件
- viper (opens new window):Viper 是 Go 应用程序的完整配置解决方案,包括 12 Factor 应用程序
# 日志(Log)
- logrus (opens new window):Logrus 是 Go 的结构化记录器,与标准库记录器完全兼容 API
- zap (opens new window):Uber 出品的号称 Go 性能最强的 Log 库
# JSON 解析
- json-iterator (opens new window):号称最快的 go json 解析器,跟官方的写法兼容
- gjson (opens new window):GJSON是一个Go包,它提供了一种从json文档中获取值的快速而简单的方法。它具有单行检索、点表示路径、迭代和解析json行等功能。
# 可视化
- go-echarts (opens new window):在 Golang 这门语言中,目前数据可视化的第三方库还是特别少,go-echarts (opens new window) 的开发就是为了填补这部分的空隙。
- gonum/plot (opens new window):gonum/plot 是code.google.com/p/plotinum 的新的官方分支。它为在 Go 中构建和绘制绘图提供了API
# 代码分析
- reviewdog (opens new window):reviewdog 提供了一种将评论自动发布到代码托管服务(如 GitHub)的方法,可以轻松地与任何 linter工具集成。它使用 lint 工具的输出,如果发现在不同的补丁中,则将其作为评论发布
- revive (opens new window):快速、可配置、可扩展、灵活且美观的 Go 语言 linter。golint 的直接替代品。
- golangci-lint (opens new window):代码质量检查分析工具
- errcheck (opens new window):errcheck 是一个用于检查 Go 代码中未检查错误的程序
- go-tools (opens new window):Go 编程语言最先进的 linter 。它使用静态分析来查找错误和性能问题、提供简化并强制执行样式规则
- perf (opens new window):官方性能量化分析工具
# 分布式
# ID 生成器
- bwmarrin/snowflake:提供了一个简单的雪花算法生成器
- gosnowflake (opens new window):Go Snowflake 驱动程序为使用 Go 编程语言开发应用程序提供了一个接口,以连接到Snowflak 并执行所有标准操作。驱动程序实现 database/sql (opens new window)
- sealos (opens new window): 一条命令部署 Kubernetes 高可用集群
# Kubernetes
- kubernetes (opens new window):相信大家都知道的容器管理平台
- k0s (opens new window):最小体积的 k8s 发行版
- kubeeye (opens new window):通过配置规则发现 Kubernetes 上的各种问题
# 邮件
- gomail (opens new window):Gomail是一个简单高效的电子邮件发送包。它经过了充分的测试和记录
# Key-Value 存储(Key-Value Store)
Go 实现的 Key-Value 存储
- etcd (opens new window):可靠的分布式 key-value 存储,用于分布式系统的最关键数据
- go-cache (opens new window):Go 语言实现的一个内存中的缓存框架,实现 Key-Value 的序列存储,适用于单台机器应用程序
- diskv (opens new window):支持磁盘的 key-value 存储
# 文件系统(File System)
Go 实现的文件系统
- git-lfs (opens new window):用于大文件版本控制的 Git 扩展
- seaweedfs (opens new window):SeaweedFS 是一个用于小文件的简单且高度可扩展的分布式文件系统
- fsnotify (opens new window):Go 实现的跨平台文件系统监控库
- goofys (opens new window):Go 实现的高性能,POSIX-ish Amazon S3 文件系统
- go-systemd (opens new window):systemd 的 Go 语言绑定版(包括socket activation, journal, D-Bus, 和 unit files)
- gcsfuse (opens new window):用于与 Google 云存储交互的用户空间文件系统
# 消息队列
- sarama (opens new window):Kafka client,依赖底层 C 使用的 Kafka client
- kafka-go (opens new window):比较好用的纯 go 写的 Kafka client
- go-rabbitmq (opens new window):RabbitMQ client
# 数据库(Database)
# Go 实现的数据库
- BigCache (opens new window):用于千兆字节数据的高效 key/value 缓存
- buntdb (opens new window):一个 Go 实现的快速、可嵌入的 key/value 内存数据库,具有自定义索引和 geospatial 支持的功能
- cache2go (opens new window):key/value 内存缓存,支持基于超时的自动无效功能
- cockroach (opens new window):一个可伸缩的、支持地理位置处理、支持事务处理的数据存储系统
- dgraph (opens new window):具有可扩展、分布式、低延迟和高吞吐量功能的图形数据库
- eliasdb (opens new window):使用 REST API,短语搜索和类似 SQL 查询语言的无依赖性,支持事务处理的图形数据库
- GCache (opens new window):支持可用缓存、LFU、LRU 和 ARC 的缓存数据库
- geocache (opens new window):geocache是一种内存缓存,适用于基于地理位置的应用程序。它使用地理位置作为存储项目的密钥。您可以在初始化时指定范围,仅此而已!您可以存储任何对象,它使用接口
- goleveldb (opens new window):这是 Go 编程语言中 LevelDB key/value 数据库的一个实现。
- groupcache (opens new window):Groupcache 是一个缓存和缓存填充库,在许多情况下用于替代 memcached
- influxdb (opens new window):开源的分布式指标、事件和实时分析的可扩展数据库
- ledisdb (opens new window):基于 LevelDB 类似 Redis 的高性能 NoSQL 数据库
- pREST (opens new window):pREST(PostgreSQL REST)是一个简单的可用于生产的API,它在现有或新的Postgres数据库之上提供即时、实时和高性能的应用程序
- prometheus (opens new window):服务监控系统和时间序列数据库
- rqlite (opens new window):基于 SQLite 构建的轻量级、分布式关系数据库
- tidb (opens new window):TiDB 是一个分布式 SQL 数据库,灵感来自于 Google F1 和 Google spanner。TiDB 支持包括传统 RDBMS 和 NoSQL 的特性。
- tiedot (opens new window):基于 Go 的 NoSQL 数据库
- Tile38 (opens new window):具有空间索引和实时地理围栏的地理位置数据库
# 数据库迁移
- gormigrate (opens new window):Gorm ORM 的数据库迁移助手
- migrate (opens new window):Go 实现的数据库迁移处理,支持 MySQL, PostgreSQL, Cassandra, 和 SQLite
# 数据库工具
- go-mysql-elasticsearch (opens new window):将 MySQL 数据自动同步到 Elasticsearch 中
# SQL 查询构建器,用于构建和使用 SQL 的库
- goqu (opens new window):Go 实现的 SQL 构建器和查询库
- Squirrel (opens new window):帮助你构建 SQL 查询的 Go 库
- xo (opens new window):基于现有 schema 定义或支持 PostgreSQL,MySQL,SQLite,Oracle 和 Microsoft SQL Server 的自定义查询生成数据库的惯用 Go 代码
# 数据库驱动
用于连接和操作数据库的库
# 关系数据库
- go-mssqldb (opens new window):Microsoft MSSQL 驱动
- go-oci8 (opens new window):Oracle 驱动,使用 database/sql
- go-sql-driver/mysql (opens new window):MySQL 驱动
- go-sqlite3 (opens new window):SQLite3 驱动,使用 database/sql
- pgx (opens new window):PostgreSQL 驱动
- pq (opens new window):Go 实现的用于 database/sql 的 Postgres 驱动
# NoSQL 数据库
- aerospike-client-go (opens new window):Go 实现的 Aerospike 客户端
- cayley (opens new window):支持多个后端的图形数据库
- gomemcache (opens new window):memcache 客户端库
- go-redis (opens new window):Redis 客户端
- mongo-go-driver (opens new window):mongoDB 客户端
# 搜索和分析数据库
- bleve (opens new window):现代文本索引库
- elastic (opens new window):Elasticsearch 客户端
# 存储服务器(Storage Server)
Go 实现的存储服务器
- minio (opens new window): Minio 是一个与 Amazon S3 APIs 兼容的开源对象存储服务器,分布式存储方案
- rclone (opens new window) :Rclone(“rsync for cloud storage”)是一个命令行程序,用于在不同的云存储提供商之间同步文件和目录。
- Perkeep (opens new window):Perkeep 是你的个人存储系统:一种存储、同步、共享、建模和备份内容的方式
- s3git (opens new window):云存储的 Git。用于数据的分布式版本控制系统
- rook (opens new window):开放、云本地和通用的分布式存储
评论
上次更新: 2024/06/15, 14:38:57