18 个版本 (11 个稳定版)
使用旧的 Rust 2015
1.3.2 | 2022年6月11日 |
---|---|
1.3.1 | 2022年2月17日 |
1.3.0 | 2021年12月8日 |
1.2.0 | 2021年9月26日 |
0.1.0 | 2018年3月31日 |
#510 in 密码学
每月下载量 2,120
在 4 个包中使用 (通过 olm-rs)
1.5MB
28K SLoC
包含 (Windows DLL, 130KB) olm/lib/ed25519/ed25519_32.dll, (Windows DLL, 115KB) olm/lib/ed25519/ed25519_64.dll, (JAR 文件, 54KB) gradle-wrapper.jar
olm-sys
: 为 Olm 提供底层绑定
这是一个中间包,它将 libolm
的 C API 暴露给 Rust。如果您想从 Rust 开始使用 libolm
,请查看 olm-rs
。
支持的平台
- Android
- Linux
- macOS
- Windows
- FreeBSD
- WebAssembly
构建
此库可以静态或动态链接到 libolm
静态
这是默认选项,无需额外操作。将 libolm
本地构建后,将其静态链接。
构建依赖
libstdc++
/libc++
- cmake (需要 v3.12)
- GNU make 或兼容变体 (仅限 WebAssembly)
- Emscripten (仅限 WebAssembly)
动态
要动态链接到 libolm
,请确保您已经在链接路径中有了库。然后使用将 OLM_LINK_VARIANT
环境变量设置为 dylib
来构建此库。
例如,使用 olm-sys
作为依赖构建项目将如下所示
$ OLM_LINK_VARIANT=dylib cargo build
为 Android 进行交叉编译
要启用 Android 的交叉编译,请将环境变量 ANDROID_NDK
设置为您 NDK 安装的位置,例如
$ ANRDOID_NDK=/home/user/Android/Sdk/ndk/22.0.7026061/
链接器也需要设置为特定于目标的一个,例如对于 aarch64-linux-android
,将此设置到您的 cargo 配置中
[target.aarch64-linux-android]
ar = "/home/user/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/linux-x86_64/bin/ar"
linker = "/home/user/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android30-clang"
设置这两者之后,使用 cargo 进行编译应该像平常一样正常工作
$ ANDROID_NDK=~/Android/Sdk/ndk/22.0.7026061 cargo build --target aarch64-linux-android
为 iOS 进行交叉编译
要启用 iOS 的交叉编译,请运行以下命令将环境变量 IOS_SDK_PATH
设置为 iOS SDK 的位置
$ export IOS_SDK_PATH=`xcrun --show-sdk-path --sdk iphoneos`