#适配器 #插件 #通用 #extism

adapter-extism

一个将 Extism 库适配到适配器 API 的适配器

3 个不稳定版本

0.2.0 2024年7月18日
0.1.1 2024年7月17日
0.1.0 2024年7月17日

#433WebAssembly

Download history 257/week @ 2024-07-13 64/week @ 2024-07-20 53/week @ 2024-07-27

每月下载量 374

MIT 许可协议

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