#适配器 #动态 #库加载 #插件 #泛型 #I/O

适配器库加载

将libloading库适配到适配器API的适配器

3个不稳定版本

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

3#库加载

Download history 257/week @ 2024-07-13 63/week @ 2024-07-20 38/week @ 2024-07-27

每月181次下载

MIT 协议

36KB

适配器

[!警告]
此库根本不是生产就绪的。

适配器是一个库,旨在提供一个标准接口,用于与各种接口或插件通信。它是基于能够用多种不同的语言配置程序的需求而创建的。

要了解背后的思考过程,请参阅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的适配器。

依赖项

~0–4.5MB