@cratestack/cbor-web

中文文档
0.17.2发布于 2026/11/01MITTypeScriptES Module构建来源已验证

用于浏览器CrateStack RPC客户端的wasm- binding cor编解码器。异步一次性WASM初始化,同步编码/解码后-由服务器和Rust客户端已经使用的相同Rust CborCodec支持。

中文使用文档
文档目录7 节
  1. 安装
  2. 使用
  3. 使用生成的CrateStack客户端
  4. 错误处理
  5. 打包机
  6. 看到也
  7. 许可证

@cratestack / cbor-web

一、 wasm-bindgen 构建的 cratestack-codec-cbor的 CborCodec 浏览器 CrateStack RPC客户端——浏览器的一半 @cratestack/cbor-node的 史诗(# 285)。与服务器和Rust客户端相同的Rust编码/解码逻辑 已经使用,可从浏览器JavaScript访问,无需重新实现cor 在打印稿。

安装

npm install @cratestack/cbor-web

使用

createCborCodec() 执行一次性WASM模块实例化和 解析为满足的普通对象 CratestackRpcCodec 从 @cratestack/ts-types. 每一个 encode/decode 召唤归来者 对象是同步的——异步代价是一次性支付的,而不是每次调用都支付:

import { createCborCodec } from "@cratestack/cbor-web";

const codec = await createCborCodec();

const bytes = codec.encode({ hello: "world" });
const value = codec.decode(bytes);

使用生成的CrateStack客户端

import { createCborCodec } from "@cratestack/cbor-web";
import { createClient } from "./generated/client.js";

const client = createClient({
  baseUrl: "https://api.example.com",
  codec: await createCborCodec(),
});

错误处理

错误的cor输入 decode,或一个值 encode 不能代表, 抛出一个可捕获的JS Error -从来没有一个WASM陷阱会毒害 模块用于后续调用(参见 crates/cratestack-cbor-wasm/src/wasm.rs 为什么这种区别很重要)。

打包机

船一 wasm-pack --target web 构建: .wasm 资产通过 new URL('cratestack_cbor_wasm_bg.wasm', import.meta.url),这是我想要的。 webpack 5和Next.js都是作为静态资源处理的,不需要额外的配置。 验证对 examples/embedded-browser-vite.

看到也

  • @cratestack/cbor-node - Node/native对应(napi-rs)。
  • crates/cratestack-cbor-wasm -包裹包裹的包裹箱。
  • crates/cratestack-codec-cbor -底层的,不变的Rust编解码器。

许可证

麻省理工学院

版本与发布记录

@cratestack/cbor-web 共发布 57 个版本,首次发布于 2026/08/03;过去 12 个月发布了 57 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.17.2latest2026/11/012 天前
0.17.12026/10/312 天前
0.17.02026/10/286 天前
0.16.02026/10/2310 天前
0.15.42026/10/1222 天前
0.15.32026/10/011 个月前

关于 @cratestack/cbor-web 的常见问题

@cratestack/cbor-web 是什么?

用于浏览器CrateStack RPC客户端的wasm- binding cor编解码器。异步一次性WASM初始化,同步编码/解码后-由服务器和Rust客户端已经使用的相同Rust CborCodec支持。

如何安装 @cratestack/cbor-web?

在项目目录运行 npm install @cratestack/cbor-web,或使用 pnpm add / yarn add / bun add。

@cratestack/cbor-web 支持 TypeScript 吗?

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

@cratestack/cbor-web 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cratestack/cbor-web 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cratestack/cbor-web 可以商用吗?

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

@cratestack/cbor-web 还在维护吗?

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