您现在的位置是:首页 > 文章详情

Cap'n Web - JavaScript 原生 RPC 系统

日期:2025-09-29点击:11

Cap'n Web 是 Cap'n Proto 的精神兄弟(由同一位作者创作),但专为在 Web 技术栈中顺畅运行而设计。这意味着:

  • 与 Cap'n Proto 类似,它是一个对象能力协议。(“Cap'n” 是“capabilities and” 的缩写。)
  • 与 Cap'n Proto 不同,Cap'n Web 没有架构。事实上,它几乎没有任何样板代码。这意味着它的工作方式更像Cloudflare Workers 中的 JavaScript 原生 RPC 系统
  • 也就是说,它与 TypeScript 很好地集成了。
  • 与 Cap'n Proto 不同的是,Cap'n Web 的底层序列化是人类可读的。实际上,它只是 JSON,经过了一些预处理/后处理。
  • 它可以通过 HTTP、WebSocket 和 postMessage() 开箱即用,并能够轻松扩展到其他传输。
  • 它适用于所有主流浏览器、Cloudflare Workers、Node.js 和其他现代 JavaScript 运行时。整个程序可压缩(minify+gzip)至 10kB 以下,且无任何依赖项。

Cap'n Web 比几乎所有其他 RPC 系统都更具表现力,因为它实现了一个对象能力 RPC 模型。这意味着它:

  • 支持双向调用,客户端可以调用服务端,服务端也可以调用客户端。
  • 支持通过引用传递函数:如果你通过 RPC 传递函数,接收者会收到一个“stub”。当他们调用该 stub 时,实际上是在向你发起一个 RPC,并在创建该函数的位置调用该函数。这就是双向调用的原理:客户端将回调传递给服务器,然后服务器稍后可以调用它。
  • 类似地,支持通过引用传递对象:如果一个类扩展了特殊标记类型RpcTarget,那么该类的实例将通过引用传递,方法调用将回调到创建对象的位置。
  • 支持 Promise 流水线。启动 RPC 时,会返回一个 Promise。无需等待,您可以立即在依赖的 RPC 中使用该 Promise,从而在一次网络往返中执行一系列调用。
  • 支持基于能力的安全模式。
原文链接:https://www.oschina.net/p/capnweb
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章