Skip to content

Zebra 文档

English docs: English

Zebra 是一个 Bun-first 的 TypeScript Web 框架,把依赖注入(DI)当作一等公民。

  • Bun-first —— 直接构建在 Bun.serve / Bun.file 与 Web Standard Request / Response 之上,没有 Node 兼容层。
  • DI 是强制的,不是外挂 —— 每个应用都围绕一个 Container 构建;路由与中间件声明自己的依赖,容器在启动时校验整张依赖图。
  • 命名对象路由 DI —— app.get(path, { svc: Service }, (req, { svc }) => ...),显式、类型安全、零字符串解析。
  • 结构化错误 —— 默认错误响应遵循 RFC 9457(Problem+Json)。
  • 契约优先(oRPC 风格) —— 契约定义一次(zc.get(path).params(s).query(s).body(s).output(s).status(n).errors(e).meta(m)),服务端用完整类型推断 + 运行时校验实现(app.implement),并从同一契约派生类型安全客户端(createClient / createTestClient)。

篇章索引

入门

篇章内容
01-getting-started安装、运行环境、快速开始、第一个应用

核心(@zebra-web/core / @zebra-web/zebra

篇章内容
02-routing路由:路径参数、通配符、HTTP 方法、groups、405 / 自动 OPTIONS
03-di依赖注入:Container、四种 scope、token、启动时图校验
04-middleware中间件:Koa 风格 compose、依赖感知的 middleware()、错误中间件
05-httpHTTP:ZebraRequest、请求体解析、响应 helpers、HttpError / Problem+Json、静态文件、请求超时
06-lifecycle生命周期:boot / ready / shutdown 钩子、优雅停机、session scope 回收
10-websocketsWebSocket:app.ws()、DI 升级决策、ws 会话

契约优先(@zebra-web/contract + @zebra-web/client

篇章内容
11-contract-first契约构建、app.implement、类型安全客户端、错误处理
16-mcp从同一契约导出 MCP 工具(@zebra-web/mcp@zebra-web/schema-zod

中间件包

篇章内容
07-sessionsCookie 会话(@zebra-web/session):HMAC 签名 sid、可插拔 store、防会话固定攻击
08-corsCORS(@zebra-web/cors):preflight、origin 白名单、credentials 精确回显
09-rate-limiting限流(@zebra-web/rate-limit):固定窗口、X-RateLimit-* 头、trustProxy
13-observability可观测性(@zebra-web/observability):requestId / accessLog / errorReporter / metrics / health
14-redisRedis 存储适配(@zebra-web/redis):限流 store + 会话 store

测试与发布

篇章内容
12-testing测试(@zebra-web/testing):createTestApp / createTestClient 进程内测试
15-production部署与发布:src 直发策略、锁步版本、性能基准
api-freezev1 API 冻结面与 SemVer 版本策略

包一览

是什么
@zebra-web/zebra公共门面 —— 再导出 @zebra-web/core@zebra-web/cors@zebra-web/session 与(别名后的)@zebra-web/rate-limit
@zebra-web/coreApp、DI 容器、路由、HTTP、中间件、implement
@zebra-web/contract契约构建器 + 协议(Standard Schema V1,零依赖)
@zebra-web/client派生类型安全客户端(零依赖)
@zebra-web/sessionCookie 会话:HMAC sid、可插拔 store、防固定攻击
@zebra-web/corsCORS 中间件:preflight、origin 白名单、credentials 回显
@zebra-web/rate-limit固定窗口限流:429 Problem+Json、X-RateLimit-* 头、可插拔 store
@zebra-web/observability可观测性中间件:requestId / accessLog / errorReporter / metrics / health
@zebra-web/redisRedis 后端:RedisRateLimitStore + RedisSessionStore(零运行时依赖)
@zebra-web/testing进程内 createTestApp / createTestClient
@zebra-web/mcp通过 HTTP dispatch 将契约 procedure 暴露为 MCP 工具
@zebra-web/schema-zod为 MCP 工具发现生成 Zod 输入 JSON Schema

12 个包的 manifest 当前均为 1.0.0,采用锁步版本。API 冻结文档 列出稳定的 v1 接口;MCP 指南 介绍 MCP 桥接与 Zod 适配器。 仓库已包含双语 VitePress 文档站(bun run docs:build)、本地性能门禁 (bun run bench:check)和由 GitHub Release 发布事件触发的包发布工作流。

示例

仓库根目录下有一套从简到全的示例,每个都可直接运行:

sh
bun --filter example-hello start           # 最小应用 — http://localhost:3000
bun --filter example-blog start            # DI 服务 + 路由分组 + 结构化错误 — http://localhost:3001
bun --filter example-contract-blog start   # 契约优先:契约 + implement + 类型化客户端
bun --filter example-forum start           # 全功能:契约 API + 会话 + 限流 + CORS + WS + 静态前端 — http://localhost:3002
bun --filter example-better-auth start     # Better Auth 集成 — http://localhost:3003

完整列表见仓库 README

Built with VitePress · MIT Licensed