@fungi.computer/capnweb

中文文档
0.12.0-fungi.0发布于 2026/11/08MITTypeScriptESM + CJS零依赖近 30 天下载 1.5万

以Capnweb 0.12.0为分叉,并纠正了Tuple申报和闲置流取消

中文使用文档
文档目录5 节
  1. 真菌叉
  2. 安装
  3. 示例
  4. 在使用的地方
  5. 许可证

@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 (英语) 财务报告和审定财务报表 通知。 。 。 .

版本与发布记录

@fungi.computer/capnweb 共发布 3 个版本,首次发布于 2026/10/15;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.12.0-fungi.0latest2026/11/088 天前
0.12.02026/10/151 个月前
0.0.0-stage2026/10/151 个月前

关于 @fungi.computer/capnweb 的常见问题

@fungi.computer/capnweb 是什么?

以Capnweb 0.12.0为分叉,并纠正了Tuple申报和闲置流取消

如何安装 @fungi.computer/capnweb?

在项目目录运行 npm install @fungi.computer/capnweb,或使用 pnpm add / yarn add / bun add。

@fungi.computer/capnweb 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fungi.computer/capnweb 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@fungi.computer/capnweb 可以商用吗?

@fungi.computer/capnweb 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fungi.computer/capnweb 的下载量有多少?

根据 npm 官方下载统计,@fungi.computer/capnweb 在 2026/10/16 – 2026/11/14 这 30 天内被下载 14,851 次,日均约 495 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fungi.computer/capnweb 还在维护吗?

最新版本 0.12.0-fungi.0 发布于 2026/11/08(8 天前);至今共发布 3 个版本,其中过去 12 个月发布了 3 个;首次发布于 2026/10/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。