3 个不稳定版本
0.2.0 | 2024年7月18日 |
---|---|
0.1.1 | 2024年7月17日 |
0.1.0 | 2024年7月17日 |
#433 在 WebAssembly
每月下载量 374
50KB
63 代码行
适配器
[!警告]
此库绝对不适合生产使用。
适配器是一个库,旨在提供标准接口,以便可以与各种接口或插件进行通信。它是为了能够用不同的语言配置程序而创建的。
要了解背后的思考过程,请参阅 RAMBLINGS.md。
此库的关键概念是适配器特质。它基于这样一个想法:与外部接口的通信应该像具有输入和输出的函数一样简单。我们使用一个标识符来确定我们想要访问的“端点”。
pub trait Adapter<'a, Input, Output, Identifier, Error> {
fn call(&'a mut self, identifier: Identifier, input: Input) -> Result<Output, Error>;
}
适配器对其使用的输入、输出、标识符和错误是通用的。它接受一个标识符和一个输入,并返回一个包含输出或错误的结果。通过通用化,我们可以要求对输入和输出应用更严格的特质。
仓库结构
- adapter: 适配器特质的实现。
- adapter-extism: Extism 库的适配器。
- adapter-libloading: 动态库的适配器。
- adapter-mlua: 通过 mlua 包含 lua 的适配器。
依赖项
~23–36MB
~594K SLoC