touka/docs/introduction.md
wjqserver 764a764720 feat: add built-in reverse proxy support
Provide an RFC-aware reverse proxy handler so Touka services can forward normal, streaming, and upgraded HTTP traffic without leaving the framework. Document the new API and proxy-chain behavior so deployments behind other gateways preserve forwarding metadata correctly.
2026-03-29 00:33:56 +08:00

27 lines
2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Touka (灯花) 简介
Touka 是一个基于 Go 语言构建的高性能、多层次 Web 框架。其设计目标是为开发者提供**更直接的控制、有效的扩展能力,以及针对特定场景的行为优化**。
## 为什么选择 Touka
在众多的 Go Web 框架中Touka 致力于在保持类似 Gin 的易用性的同时,提供更深度的底层控制和更强大的统一错误处理机制。
### 核心特性
- **高性能路由**: 基于基数树Radix Tree实现的路由系统支持高效的路径匹配、参数捕获和通配符路由。
- **极致性能优化**:
- **Context 复用**: 通过对象池sync.Pool管理 `touka.Context`,显著减少 GC 压力。
- **最小化内存分配**: 在热点路径上尽可能减少临时对象的产生。
- **统一错误处理**: 独创的 `errorCapturingResponseWriter` 机制,能够捕获包括标准库 `http.FileServer` 在内的所有组件产生的错误状态码,并交由全局处理器统一处理。
- **无缝集成 SSE**: 内置对 Server-Sent Events 的支持,提供简单易用的回调式 API 和高度灵活的通道式 API。
- **内置反向代理**: 支持请求转发、协议升级、转发头维护、Trailer 与流式响应透传。
- **静态资源增强**: 针对本地文件、目录以及 Go 嵌入式文件系统embed.FS提供了开箱即用的支持。
- **标准库兼容**: 提供了适配器,可以轻松将现有的 `http.Handler``http.HandlerFunc` 集成到 Touka 中。
## 设计哲学
1. **直接性**: 框架 API 设计直观,尽可能减少开发者需要记忆的概念。
2. **可扩展性**: 每一个核心组件(如日志、错误处理器、渲染器)都是可插拔或可定制的。
3. **健壮性**: 内置优雅停机支持,确保在服务器更新或关闭时请求能得到正确处理。
Touka 不仅仅是一个处理 HTTP 请求的工具,它还是构建现代化、可维护、高可用 Web 应用的坚实基础。