安装
Wasmtime CLI可以通过一个简单的安装脚本在Linux和macOS上(本地)安装:
curl https://wasmtime.dev/install.sh -sSf | bash
Windows用户或其他感兴趣的用户可以直接从GitHub发布页面下载安装程序和二进制文件。
示例
如果您已经安装了Rust编译器,那么您可以使用一些Rust源代码:
fn main() {
println!("Hello, world!");
}
并使用以下命令编译/运行它:
$ rustup target add wasm32-wasip1
$ rustc hello.rs --target wasm32-wasip1
$ wasmtime hello.wasm
Hello, world!
(注意:请确保您使用官方说明中的rustup
方法安装了Rust,并且系统中没有以其他方式(例如系统包管理器)安装的Rust工具链副本。否则,rustup target add...
命令可能不会为正确的Rust副本安装目标。)
特性
-
快速。Wasmtime基于优化的Cranelift代码生成器构建,可以在运行时或预先快速生成高质量的机器代码。Wasmtime针对高效实例化、嵌入器和wasm之间的低开销调用以及并发实例的可扩展性进行了优化。
-
安全。Wasmtime的开发强烈关注正确性和安全性。在Rust的运行时安全保证的基础上,每个Wasmtime功能都要经过通过RFC流程的仔细审查和考虑。功能实现后,它们会接受由Google的OSS Fuzz捐赠的24/7模糊测试。随着功能的稳定,它们成为发布的一部分,当出现问题时,我们有一个明确定义的安全政策来快速缓解和修复任何问题。我们遵循纵深防御的最佳实践,并集成了针对Spectre等问题的保护和缓解措施。最后,我们正在与学术研究人员合作,通过正式验证Wasmtime和Cranelift的关键部分来推动最先进的技术。
-
可配置。Wasmtime使用合理的默认值,但也可以进行配置,以提供对CPU和内存消耗等方面更精细的控制。无论您想在小型环境中运行Wasmtime,还是在具有多个并发实例的大型服务器上运行,我们都能满足您的需求。
-
符合标准。Wasmtime通过了官方WebAssembly测试套件,实现了官方wasm的C API,并实现了WebAssembly的未来提案。Wasmtime开发人员也深入参与WebAssembly标准化过程。
语言支持
您可以通过实现的嵌入来从各种不同的语言使用Wasmtime。
字节码联盟支持的语言:
- Rust -
wasmtime
crate - C -
wasm.h
、wasi.h
和wasmtime.h
头文件、CMake或wasmtime
Conan包 - C++ -
wasmtime-cpp
仓库或使用wasmtime-cpp
Conan包 - Python -
wasmtime
PyPI包 - .NET -
Wasmtime
NuGet包 - Go -
wasmtime-go
仓库 - Ruby -
wasmtime
gem
社区支持的语言:
- Elixir -
wasmex
hex包 - Perl -
Wasm
Perl包的Wasm::Wasmtime
文档
wasmtime指南是了解Wasmtime可以为您做什么或帮助回答您关于Wasmtime问题的最佳起点。如果您对贡献Wasmtime感兴趣,它也可以帮助您做到这一点!
这就是Wasmtime。