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' });
评论
