TSRPCTypeScript 全栈 RPC 框架
TSRPC 是专为 TypeScript 设计的 RPC 框架,经千万级用户验证,适用于 HTTP API、WebSocket 实时应用、NodeJS 微服务等场景。
特性
- 原汁原味 TypeScript
- 直接基于 TypeScript 的
type
和interface
定义协议 - 无需装饰器、注解、第三方语言
- 支持 TypeScript 高级类型,如 Union Types、Intersection Types、Utility Types 等。
- 直接基于 TypeScript 的
- 类型安全
- 开发时全程代码提示,避免低级错误
- 运行时自动参数校验,总是类型安全
- 更强的 JSON
- 支持在 JSON 中传输更多数据类型
- 例如
ArrayBuffer
、Date
、ObjectId
- 支持二进制传输
- 可将 TypeScript 类型直接编码为二进制
- 包体更小、更易加密、无需 Protobuf
- 支持 Serverless
- 同时支持 Serverless 云函数和容器化部署
- 兼容阿里云、腾讯云、AWS 标准
- 一键生成接口文档
- 一键生成多种格式的接口文档
- 例如 Swagger / OpenAPI / Markdown
- 多协议
- 同时支持 HTTP / WebSocket
- 传输协议无关的架构,轻松扩展至任意信道
- 跨平台
- 浏览器 / 小程序 / App / NodeJS 多平台支持
- 兼容 Restful API 调用,兼容 Internet Explorer 10
- 高性能
- 单核单进程 5000+ QPS 吞吐量(测试于 Macbook Air M1, 2020)
- 经过数个千万用户级项目验证,单元测试、压力测试、DevOps 方案齐备
用法示例
Define Protocol (Shared)
export interface ReqHello { name: string; } export interface ResHello { reply: string; }
Implement API (Server)
import { ApiCall } from "tsrpc"; export async function ApiHello(call: ApiCall<ReqHello, ResHello>) { call.succ({ reply: 'Hello, ' + call.req.name }); }
Call API (Client)
let ret = await client.callApi('Hello', { name: 'World' });
评论