64个版本 (33个稳定版本)
12.0.2 | 2023年9月14日 |
---|---|
11.0.2 | 2023年9月14日 |
11.0.1 | 2023年7月24日 |
10.0.2 | 2023年9月14日 |
0.25.0 | 2021年3月16日 |
#1565 in WebAssembly
2.5MB
41K SLoC
wasmtime-wasi-crypto
此crate允许在Wasmtime中支持wasi-crypto API。
实现的主要目的是允许绑定和应用开发者测试提议的API。这个实现不打算用于生产。像规范一样,它目前是实验性的,其功能可能会迅速改变。
由于wasi-crypto API预计将是WASI的可选功能,因此此crate目前与wasi-common crate分开。
Wasmtime集成
使用Wasmtime API实例化Wasm模块,并按如下方式链接wasi-crypto
模块:
use wasmtime_wasi_crypto::{
WasiCryptoAsymmetricCommon, WasiCryptoCommon, WasiCryptoCtx, WasiCryptoSignatures,
WasiCryptoSymmetric,
};
let cx_crypto = WasiCryptoCtx::new();
WasiCryptoCommon::new(linker.store(), cx_crypto.clone()).add_to_linker(linker)?;
WasiCryptoAsymmetricCommon::new(linker.store(), cx_crypto.clone()).add_to_linker(linker)?;
WasiCryptoSignatures::new(linker.store(), cx_crypto.clone()).add_to_linker(linker)?;
WasiCryptoSymmetric::new(linker.store(), cx_crypto.clone()).add_to_linker(linker)?;
let wasi = wasmtime_wasi::old::snapshot_0::Wasi::new(linker.store(), mk_cx()?);
wasi.add_to_linker(linker)?;
构建Wasmtime
为了包含加密API,Wasmtime必须使用wasi-crypto
功能标志进行编译(默认禁用)。
示例
提供了示例rust绑定和assemblyscript绑定,以演示如何以符合语法的 方式使用这些API并将其暴露给应用程序。
依赖关系
~47–63MB
~1.5M SLoC