跳到主要内容

关于 WooCoo

WooCoo(音:武库)是一个基于 Go 的应用开发框架和工具包,旨在帮助开发者快速构建高性能的 Web API 和微服务应用。

Language codecov Go Report Card Build Status Release GoDoc

设计理念

WooCoo 的核心理念是**"优秀的粘合剂"**——我们不重复造轮子,而是将业界优秀的开源组件集成起来,提供一个统一的、约定式的开发框架,让你专注于业务逻辑的开发。

核心特性

🚀 快速开发

  • 约定式配置:基于约定优于配置的原则,减少样板代码
  • Gin 引擎集成:完全兼容 Gin 的路由和中间件生态
  • GraphQL 支持:内置 GraphQL 支持,可与 Ent ORM 无缝集成

🌐 Web 开发

  • 基于 Gin 的高性能 Web 框架
  • 内置常用中间件:JWT 认证、CORS、访问日志、错误处理等
  • 灵活的中间件配置和加载顺序控制
  • 支持 HTTP/HTTPS 服务

🔌 微服务支持

  • gRPC 服务:内置 gRPC Server,轻松构建微服务
  • 服务注册与发现
  • OpenTelemetry:原生支持分布式追踪和可观测性

⚙️ 工程化实践

  • 灵活配置管理:基于 Koanf 的配置系统,支持 YAML、环境变量、多文件合并等
  • 高性能日志:基于 Zap 的结构化日志,支持日志轮转
  • 缓存支持:内置 Redis 和内存缓存支持

🛠️ 开发工具

  • WoCo CLI:代码生成工具,快速创建项目模板
  • OpenAPI 3.0 代码生成:从 OpenAPI 规范生成服务端代码
  • Ent ORM 集成:支持 Ent 代码生成

技术栈

WooCoo 的核心组件来自以下优秀项目:

组件技术栈用途
Web 引擎GinHTTP 路由和处理
配置管理Koanf灵活的配置加载
日志系统Zap高性能结构化 日志
gRPCgRPC-GoRPC 通信
缓存go-redisRedis 客户端
JWTjwt/v5身份认证

性能表现

WooCoo 在 Gin 的基础上进行了优化,在 Web 场景下表现出色的性能:

Benchmark总吞吐量单次延迟堆内存分配次数
WooCoo Web564,6122633 ns/op1103 B/op5 allocs/op
Gin Default81,19814,418 ns/op354 B/op13 allocs/op
Gin MockLogger423,0542747 ns/op221 B/op8 allocs/op

测试环境:macOS, Intel Core i7-9750H @ 2.60GHz

快速开始

# 创建项目
mkdir myapp && cd myapp
go mod init myapp
go get github.com/tsingsun/woocoo

# 或使用 CLI 工具快速创建项目
go install github.com/tsingsun/woocoo/cmd/woco@latest
woco init -p myapp -m cache,web,grpc,otel -t ./myapp

查看 快速开始 了解更多详情。

示例项目

社区与支持

许可证

WooCoo 采用 MIT 许可证


准备好开始了吗? 前往 快速开始 了解如何使用 WooCoo 构建你的第一个应用!