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
7,059 个月下载量
用于 3 crates
185KB
4K SLoC
libcryptsetup-rs
此crate为libcryptsetup提供Rust绑定。
关于线程安全的说明
libcryptsetup 不是线程安全的,并且依赖于不是线程安全的库。在任何多线程环境中默认使用libcryptsetup将导致未定义的行为。
作为一种权宜之计,此库提供了一个功能(mutex
),使所有对libcryptsetup的调用都获取crate级别的互斥锁。这将强制对所有libcryptsetup API调用的单线程访问。
Rust决定使指针!Send
应该被尊重。任何包含指针的数据结构在跨线程中都是不安全的。为libcryptsetup-rs提供的任何不是Send
的数据结构提供unsafe impl Send {}
可能会产生未定义的行为。
构建
libcryptsetup绑定需要一些除cargo之外的依赖项才能正确构建
- cryptsetup(由Fedora上的
cryptsetup
提供) - cryptsetup开发头文件(由Fedora上的
cryptsetup-devel
提供) - libclang(由Fedora上的
clang
提供)
测试绑定
有一个测试实际上调用了libcryptsetup,可用于对绑定进行基本合理性测试,因为它只有在底层绑定正确生成、高级绑定构建成功以及libcryptsetup成功加密回环设备时才会成功。
可以按照以下方式调用
make test-loopback
依赖项
~1.1–4.5MB
~82K SLoC