前端知库

Comlink

封装 postMessage 通信的开源库,让主线程通过异步代理调用 Worker 暴露的接口,减少手写消息分派代码。

适合把解析、计算或图像处理放入 Worker,又不想为每个方法手写消息 ID、结果回传和错误分派的场景。接口看起来像调用对象方法,但跨线程操作仍是异步的,调用方要处理 Promise、失败和生命周期,不能把它当作普通同步对象。

数据默认仍受结构化克隆规则约束。大缓冲区可以按 API 约定转移所有权,但转移后发送方不能继续按原来的有效缓冲使用;代理回调与共享内存也有各自成本。它不会自动让任务可取消、限制等待队列或把同源 Worker 变成安全沙箱。

页面卸载时应按官方 API 释放代理引用,并在确定不再使用时终止自己拥有的 Worker;释放代理与终止线程不是同一个动作。共享 Worker、远程端点和 iframe 通信还需明确所有权与来源校验,不能向不可信对端暴露任意宿主能力。

本次核对官方 comlink 4.4.2 发布元数据和 README,许可标记为 Apache-2.0,可免费用于商业项目,分发或修改遵守相应许可。这里只收录开源通信库,不包含托管计算或商业服务。