touka/docs/introduction.md
wjqserver e4d3eed379 feat: redesign server startup around Run options
Replace the old RunShutdown and RunTLS style entry points with a single Run(opts...) API for v1. Add focused startup semantics tests, keep TLS and graceful shutdown independent, ensure sibling servers are cleaned up on startup failure, and update docs to match the new option-based startup model.
2026-04-07 17:44:55 +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. **健壮性**: 通过 `Run(...)` 的启动选项提供优雅停机支持,使服务在更新或关闭时能更稳妥地处理进行中的请求。
Touka 不仅仅是一个处理 HTTP 请求的工具,它还是构建现代化、可维护、高可用 Web 应用的坚实基础。