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 密码学

Download history • Rust 包仓库 172/week @ 2024-04-04 • Rust 包仓库 292/week @ 2024-04-11 • Rust 包仓库 256/week @ 2024-04-18 • Rust 包仓库 264/week @ 2024-04-25 • Rust 包仓库 515/week @ 2024-05-02 • Rust 包仓库 358/week @ 2024-05-09 • Rust 包仓库 365/week @ 2024-05-16 • Rust 包仓库 535/week @ 2024-05-23 • Rust 包仓库 444/week @ 2024-05-30 • Rust 包仓库 438/week @ 2024-06-06 • Rust 包仓库 504/week @ 2024-06-13 • Rust 包仓库 499/week @ 2024-06-20 • Rust 包仓库 481/week @ 2024-06-27 • Rust 包仓库 473/week @ 2024-07-04 • Rust 包仓库 548/week @ 2024-07-11 • Rust 包仓库 499/week @ 2024-07-18 • Rust 包仓库

每月下载量 2,120
4 个包中使用 (通过 olm-rs)

Apache-2.0

1.5MB
28K SLoC

C++ 10K SLoC // 0.1% comments • Rust 包仓库 C 7.5K SLoC // 0.2% comments • Rust 包仓库 Java 3K SLoC // 0.3% comments • Rust 包仓库 Objective-C 2K SLoC // 0.1% comments • Rust 包仓库 Python 2K SLoC // 0.4% comments • Rust 包仓库 JavaScript 2K SLoC // 0.1% comments • Rust 包仓库 Rust 2K SLoC // 0.0% comments • Rust 包仓库 GDB Script 120 SLoC • Rust 包仓库 Shell 106 SLoC // 0.2% comments • Rust 包仓库 TypeScript 103 SLoC // 0.1% comments • Rust 包仓库 Batch 93 SLoC • Rust 包仓库 Swift 48 SLoC • Rust 包仓库 INI 30 SLoC • Rust 包仓库 Forge Config 7 SLoC • Rust 包仓库 GNU Style Assembly 7 SLoC • Rust 包仓库

包含 (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`

依赖项