WASM 加速

A3S Form 的摘要热路径由 Rust no_std WebAssembly 模块执行。模块不分配堆内存,使用固定输入缓冲区,并导出最小 ABI:

  • input_ptr:输入缓冲区地址;
  • input_capacity:最大 UTF-8 字节数;
  • hash:计算 SHA-256 并返回摘要地址;
  • engine_version:引擎语义版本。

运行时会同步实例化内嵌模块。浏览器不支持 WebAssembly、模块无效或输入超过容量时,会自动使用结果完全一致的 JavaScript 实现。

import { wasmAccelerationStatus } from '@a3s-lab/form/core';

console.log(wasmAccelerationStatus());
// { available: true, engine: 'rust-sha256', version: '1.0.0', capacity: 4194304 }

重新构建和执行本地基准:

bun run wasm:build
bun run build
bun run wasm:benchmark