19 个不稳定版本

0.10.0 2024年7月18日
0.9.3 2024年3月25日
0.9.2 2024年1月16日
0.9.1 2023年10月23日
0.3.0 2020年3月27日

#73 in Unix API

Download history 856/week @ 2024-04-24 1671/week @ 2024-05-01 1054/week @ 2024-05-08 722/week @ 2024-05-15 552/week @ 2024-05-22 1302/week @ 2024-05-29 608/week @ 2024-06-05 1184/week @ 2024-06-12 1220/week @ 2024-06-19 1017/week @ 2024-06-26 1136/week @ 2024-07-03 1444/week @ 2024-07-10 1606/week @ 2024-07-17 1607/week @ 2024-07-24 1208/week @ 2024-07-31 2360/week @ 2024-08-07

7,059 个月下载量
用于 3 crates

MPL-2.0 许可证

185KB
4K SLoC

Latest Version Documentation

libcryptsetup-rs

此crate为libcryptsetup提供Rust绑定。

关于线程安全的说明

libcryptsetup 不是线程安全的,并且依赖于不是线程安全的库。在任何多线程环境中默认使用libcryptsetup将导致未定义的行为。

作为一种权宜之计,此库提供了一个功能(mutex),使所有对libcryptsetup的调用都获取crate级别的互斥锁。这将强制对所有libcryptsetup API调用的单线程访问。

Rust决定使指针!Send应该被尊重。任何包含指针的数据结构在跨线程中都是不安全的。为libcryptsetup-rs提供的任何不是Send的数据结构提供unsafe impl Send {}可能会产生未定义的行为。

构建

libcryptsetup绑定需要一些除cargo之外的依赖项才能正确构建

  1. cryptsetup(由Fedora上的cryptsetup提供)
  2. cryptsetup开发头文件(由Fedora上的cryptsetup-devel提供)
  3. libclang(由Fedora上的clang提供)

测试绑定

有一个测试实际上调用了libcryptsetup,可用于对绑定进行基本合理性测试,因为它只有在底层绑定正确生成、高级绑定构建成功以及libcryptsetup成功加密回环设备时才会成功。

可以按照以下方式调用

make test-loopback

依赖项

~1.1–4.5MB
~82K SLoC