napi-rsHarmonyOS版本。整体代码来源于napi-rs,针对鸿蒙系统做了部分裁剪和整理
-
OpenHarmony SDK
配置环境变量为OHOS_NDK_HOME,进入之后目录结构应该包括 native ets js等目录 -
Rust
MSRV 1.65.0
- 安装脚手架工具
cargo install ohrs- 初始化项目
ohrs init test- 构建产物
cd test
ohrs build目前所有API基本对齐napi,你可以在example中看到在HarmonyOS工程中的应用。
| Package | Version | Description |
|---|---|---|
@ohos-rs/crc32 |
0.0.1 | Fastest CRC32 implementation using SIMD |
@ohos-rs/jieba |
0.0.1 | jieba-rs binding |
你可以在 这里 提交相关问题、建议和需求场景。
-
为什么Rust构建产物体积比官方的CMAKE构建体积大?
Rust本身的产物体积会比C++大很多。即使使用了各种优化手段因为零抽象成本等各种原因,本身构建的代码体积就会比C++大。- 如果对于体积较为敏感的话,可以参考min-sized-rust进行优化。
- 另外可以使用NDK提供的strip工具进行优化。工具路径:
${OHOS_NDK_HOME}/native/llvm/bin/llvm-strip
-
为什么
Option<T>参数会报错?
目前OpenHarmony NDK中的napi_typeof方法实现有点问题,对于可选参数无法默认处理成 undefined 值。已向团队提相关问题,待修复即可。 -
为什么
Buffer在 Native 和 ArkTS 之间无法直接传递?
ArkTS侧的 buffer实现跟Native侧的 Buffer实现不一致,导致在跨语言传递的时候出现问题。已向官方提相关问题,待修复即可。
-
CI支持 目前鸿蒙开放对于linux下通过NDK构建的能力支持太弱,等到API10放开后支持
-
鸿蒙官方底层能力包装 如hilog,vulkan,OpenGL等能力