#libloading #shared #loading #dynamic #library #api-bindings

shared_lib

libloading包的包装器,旨在改进系统路径和错误处理

2个版本

0.1.1 2024年6月15日
0.1.0 2024年6月14日

#262操作系统

每月 35次下载

MIT 许可证

13KB
171 代码行

shared_lib

libloading包的包装器,它是对平台动态库加载原语的绑定,具有极大的内存安全性提升。shared_lib旨在通过使用表示平台独立路径的自定义结构来改进系统路径处理。该库还返回自定义枚举变体,以更好地区分不同类型的错误。

安装

cargo add shared_lib

或将其添加到您的 Cargo.toml 文件中。

用法

use shared_lib::*;
use std::path::PathBuf;

fn main() {
    let lib_path = LibPath::new(PathBuf::from("path/to/dir"), "library_name_no_ext".into());
    unsafe {
       let lib = SharedLib::new(lib_path).unwrap();
       let func = lib.get_fn::<fn(usize, usize) -> usize>("foo").unwrap();
       let result = func.run(1, 2);
       println!("Result = {}", result);
    }
}

文档

此库在MIT许可证下可用

依赖

~0.4–6MB
~18K SLoC