#bindings #sdk #generated-bindings #bindgen #photometrics

sys libpvcam-sys

bindgen生成的Photometrics C SDK的FFI绑定

1 个不稳定版本

0.1.0 2020年9月29日

#78 in #bindgen

自定义许可证

30KB
596 代码行

libpvcam-sys

Rust对Photometrics PVCam C SDK的绑定。高度实验性。

目前仅在Ubuntu上进行了测试。

依赖

  • rustup@ 1.22.1
  • libclang1-9
  • pvcam 来自 Photometrics
    • 仅验证了以下版本: 3.8.4.33.9.4.0

设置

假设按照Ubuntu的安装说明安装了pvcam。

备注

此库使用bindgen,它尽力遍历头文件并生成适当的结构和FFI接口。您会注意到此绑定中有大量的类型转换。可能调整bindgen设置可以减少这些转换。

PVCam SDK中有许多弃用功能,因此build.rs中的bindgen调用坚决不导入一系列函数。然而,最好使用whitelist选项并从类似Photometrics的Python绑定的脚本构建列表。

模块结构

o -- lib.rs
    `-- pvcam (public)
       `-- internal (private)

公共的pvcam模块重新导出bindgen生成的内部概念,并使其尽可能“Rusty”。其中一些Rust模式可能

  1. 不正确
  2. 过于主观

在第一个案例中:我对绑定中何时使用各种ptr类型的意义不够清楚。《原始指针文档》涵盖了这一点。另外,我是Rust的新手 ^_^。

在第二个案例中:Rust枚举映射到PVCam SDK枚举最清楚地展示了这一点。这些可能是提升到更高级别库的好候选者,该库实现其他特性,例如PVCamContext,当它离开作用域时释放资源。目标是使这一层尽可能像C一样。

待办事项

  • [] 验证此readme中记录的依赖项
  • [] 验证此readme中记录的安装步骤

无运行时依赖项

~0–1.8MB
~34K SLoC