TSRPCTypeScript 全棧 RPC 框架
TSRPC 是專為 TypeScript 設(shè)計(jì)的 RPC 框架,經(jīng)千萬(wàn)級(jí)用戶驗(yàn)證,適用于 HTTP API、WebSocket 實(shí)時(shí)應(yīng)用、NodeJS 微服務(wù)等場(chǎng)景。
特性
- 原汁原味 TypeScript
- 直接基于 TypeScript 的
type和interface定義協(xié)議 - 無(wú)需裝飾器、注解、第三方語(yǔ)言
- 支持 TypeScript 高級(jí)類型,如 Union Types、Intersection Types、Utility Types 等。
- 直接基于 TypeScript 的
- 類型安全
- 開(kāi)發(fā)時(shí)全程代碼提示,避免低級(jí)錯(cuò)誤
- 運(yùn)行時(shí)自動(dòng)參數(shù)校驗(yàn),總是類型安全
- 更強(qiáng)的 JSON
- 支持在 JSON 中傳輸更多數(shù)據(jù)類型
- 例如
ArrayBuffer、Date、ObjectId
- 支持二進(jìn)制傳輸
- 可將 TypeScript 類型直接編碼為二進(jìn)制
- 包體更小、更易加密、無(wú)需 Protobuf
- 支持 Serverless
- 同時(shí)支持 Serverless 云函數(shù)和容器化部署
- 兼容阿里云、騰訊云、AWS 標(biāo)準(zhǔn)
- 一鍵生成接口文檔
- 一鍵生成多種格式的接口文檔
- 例如 Swagger / OpenAPI / Markdown
- 多協(xié)議
- 同時(shí)支持 HTTP / WebSocket
- 傳輸協(xié)議無(wú)關(guān)的架構(gòu),輕松擴(kuò)展至任意信道
- 跨平臺(tái)
- 瀏覽器 / 小程序 / App / NodeJS 多平臺(tái)支持
- 兼容 Restful API 調(diào)用,兼容 Internet Explorer 10
- 高性能
- 單核單進(jìn)程 5000+ QPS 吞吐量(測(cè)試于 Macbook Air M1, 2020)
- 經(jīng)過(guò)數(shù)個(gè)千萬(wàn)用戶級(jí)項(xiàng)目驗(yàn)證,單元測(cè)試、壓力測(cè)試、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' });
評(píng)論
圖片
表情
