@fungi. 计算机/capnweb
Cap'n Web是一个JavaScript-native,对象能力RPC系统:没有计划,没有
代码生成、人可读(基于JSON)线条格式,以及支持
双向呼叫、通过引用传递函数/对象以及承诺
管道(将依赖电话连入一次网络往返)。 有用吗
超过HTTP, WebSocket,以及 postMessage()在浏览器中,云花板工人,
节点Js Bun和德诺.
真菌叉
这个包是真菌叉
云层/封面网 地点 0.12.0
释放(承诺) 7702075) (中文(简体) ). 它有两个修正:
- 单位
src/types.ts, (中文(简体) ),UnstubifyInner将一拖拉尾巴通过UnstubifyAll<Tail>改为Unstubify<Tail>。 。 。 .Unstubify<Tail>是一个 包括工会Promise所以上游申报失败了 TS2574 (“剩余元素类型必须是数组类型”)skipLibCheck: false财务报告和审定财务报表 丢失 tuple 参数类型 . - 单位
src/streams.ts财务报告和审定财务报表src/rpc.ts,导出根报告破损 现有onBroken回调和中断引用reject留言。 土著 可写流钩子现在通过机器报告写作失败. 书面代用符观察回调,所以取消收到的可读 中断闲发件人的管子而不等待另一个块。 这个可以 不曝光写入属性或添加有线信息、同行谈判或一个 倒计时。 上游0.12.0和真菌的0.6.0时代同龄人保持正常流畅 及其先前取消的暂停; 立即闲置取消需要 两端的固定。 导入条目会在 处理完毕,包括通常完成的管;会话中止通知 a 现场观察者的照片 让观察者的清理无法压制 别人.
当上游 Cap'n Web 包含两个修正时, 放下这个叉子 。 代理和收件箱
运输取消通过实际的MessagePort RPC和原生
HTTP 输入 packages/agar/src/agents-rpc.test.ts。 。 。 . pnpm test 混合水平练习
逆向上游流动 [email protected],一个仅测试的依赖,
和在直播会话中释放资源,加上中止时完成观察员交付.
其资源定律使用Node维护的V8对象计数器而非私用
RPC表格.
安装
npm install @fungi.computer/capnweb
示例
一个客户端 :
import { newWebSocketRpcSession } from "@fungi.computer/capnweb";
// One-line setup.
let api = newWebSocketRpcSession("wss://example.com/api");
// Call a method on the server!
let result = await api.hello("World");
console.log(result);
服务器 :
import { RpcTarget, newWorkersRpcResponse } from "@fungi.computer/capnweb";
// This is the server implementation.
class MyApiServer extends RpcTarget {
hello(name) {
return `Hello, ${name}!`;
}
}
// Standard Cloudflare Workers HTTP handler.
//
// (Node, Deno, Bun and other runtimes are supported too.)
export default {
fetch(request, env, ctx) {
let url = new URL(request.url);
if (url.pathname === "/api") {
return newWorkersRpcResponse(request, new MyApiServer());
}
return new Response("Not found", { status: 404 });
},
};
三次受扶养电话,一次往返:
using api = newHttpBatchRpcSession<Api>("https://example.com/api");
// No awaits, so no round trips yet.
using authed = api.authenticate(apiToken);
let friendIds = authed.getFriendIds();
// One await. One round trip. Everything above travelled together.
let friends = await friendIds.map((id) => api.getUserProfile(id));
关于完整的API、传输和服务器运行时间指南,见 上游文献网站 编辑 上游读取。 。 。 .
在使用的地方
牡蛎使用这个 用于浏览器/框架RPC和Agent/inbox请求和反应机构的叉. 这个 电脑客户端和Cordyceps的捆绑电脑也用于WebSocket和 HTTP-batch RPC,包括文件/Blob和执行-事件流. 应用程序发布, 主机、 CLI 捆绑和计算机图像可以独立构建; 正常 其上游0.12.0时代的同龄人流必须保持有效.
许可证
麻省理工学院. 此软件包带有上游 Cloudflare 版权和许可证 不变——见 LICENSE.txt (英语) 财务报告和审定财务报表 通知。 。 。 .