模糊- rpc- 核心
TypeScript项目通用JSON-RPC 2.0核心.
这个包是有意的域-不可知. 它为下列目的提供了已执行的原始材料:
- JSON-RPC的请求和答复;
- (单位:千美元)
RpcClient单次通话、原始通话、通知和批发; fetch- 基于 HTTP 的运输,有超时和中止支持;- 复试和后退;
- 终点池和甄选战略;
- 订出生命周期钩;
- 通用度量衡;
- 可选的明确缓存;
- 结构化公共错误;
- 测试帮助者.
它不执行块链逻辑,健康检查,打分,加密签名,链验证或MCP服务器行为.
状态
实施MVP. 核心作为通用JSON-RPC引擎可用,并被针对客户管弦,运输,重试/失败,节点池选择,缓存,钩子,度量衡和结构错误的单元测试所覆盖.
安装
npm install @beblurt/blurt-rpc-core
该软件包仅限无害环境管理,目标Node.js QQ 18,并在浏览器运行时运行
提供 fetch, (中文(简体) ), AbortController, (中文(简体) ), URL 财务报告和审定财务报表 setTimeout。 。 。 .
脚本
npm run build
npm run typecheck
npm run lint
npm test
npm audit --audit-level=high
最小使用量
import { RpcClient } from '@beblurt/blurt-rpc-core'
const rpc = new RpcClient('https://rpc.example.org', { timeoutMs: 4000 })
const result = await rpc.call('namespace.method', { limit: 10 })
原始回应
const response = await rpc.call('namespace.method', { limit: 10 }, { responseMode: 'response' })
多个端点和重试/失败
import { fixedBackoff, RpcClient } from '@beblurt/blurt-rpc-core'
const rpc = new RpcClient(['https://rpc-a.example.org', 'https://rpc-b.example.org'], {
retry: { maxAttempts: 3, backoff: fixedBackoff(250) }
})
const value = await rpc.call('namespace.method')
明确的缓存
缓存绝不是隐含的,核心从不从方法名称中决定可缓存性.
import { MemoryCacheProvider, RpcClient } from '@beblurt/blurt-rpc-core'
const rpc = new RpcClient('https://rpc.example.org', {
cache: { provider: new MemoryCacheProvider(), ttlMs: 5000 }
})
await rpc.call('namespace.method', { limit: 10 }, { cache: { ttlMs: 5000 } })
钩和度量衡
import { InMemoryMetricsCollector, RpcClient } from '@beblurt/blurt-rpc-core'
const metrics = new InMemoryMetricsCollector()
const rpc = new RpcClient('https://rpc.example.org', {
metrics,
hooks: {
beforeRequest: (request, context) => {
// Return a replacement request to mutate, or void to continue unchanged.
},
afterAttempt: (outcome) => {
// Observe success/error for each concrete attempt.
}
}
})
文档
以 :
ARCHITECTURE.mdAPI.mdDESIGN_DECISIONS.mddocs/public-api.mddocs/release-0.1.0.md- 模块参考页
docs/
非目标
本包中没有块链,打分,签名,健康检查,方法特定行为或MCP服务器代码等属于.