【译】用 `Wasmer` 进行插件开发 1

这篇译文介绍了如何使用Wasmer进行插件开发,包括环境设置、创建第一个插件和运行器,以及深入探究WASM内存交互。通过一个简单的示例,展示了如何将Rust程序编译为WASM并在主机程序中调用。
摘要由CSDN通过智能技术生成

【译】用 Wasmer 进行插件开发 1

几个月之前,Wasmer 团队发布了一个 Web Assembly(aka wasm) 解释器,用于 rust 程序的嵌入式开发。对于任何想要在项目中添加插件的人来说,这尤其令人兴奋,因为Rust提供了一种直接将程序编译到 wasm 的方法,这个应该是一个很好的选择。在这个系列的博客文章中,我们将研究如何使用 wasmerrust 构建插件系统。

环境设置

在我们深入研究细节之前,我们心里要想像一个这个项目的轮廓。如果你在电脑上继续接下来的学习,你可以做到;如果没有电脑,一切做起来可能显得没那么神奇。为此,我们将利用 cargo 的workspace特性,该特性可以让我们在一个父项目中聚合一组相关的项目。这里相关的代码你都能在 Github 仓库 上找到,每个分支代表这个系列的不同状态。我们要研究的基本结构是这样的:

wasmer-plugin-example
├── Cargo.toml
├── crates
│   ├── example-macro
│   │   ├── Cargo.toml
│   │   └── src
│   │       └── lib.rs
│   ├── example-plugin
│   │   ├── Cargo.toml
│   │   └── src
│   │       └── lib.rs
│   └── example-runner
│       ├── Cargo.toml
│       └── src
│           └── main.rs
└── src
    └── lib.rs
  • wasmer-plugin-example 是一个rust库,我们将在下一个部分谈论其中的细节。
  • crates 这个目录将会存放我们所有其他的项目
  • example-plugin 用于测试插件以保证运行结果是我们期望的
  • example-runner 二进制项目,将会作为插件的host
  • example-macro 一个 proc_macro 库,将会在下一个部分文章中进行创建

为此,我们将从创建父项目开始。运行以下命令:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值