napi-ohos 0.0.4

N-API bindings
docs.rs failed to build napi-ohos-0.0.4
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

napi-rs-oh

napi-rs HarmonyOS版本。整体代码来源于napi-rs,针对鸿蒙系统做了部分裁剪和整理

环境准备

  • OpenHarmony SDK
    配置环境变量为OHOS_NDK_HOME,进入之后目录结构应该包括 native ets js等目录

  • Rust
    MSRV 1.65.0

快速开始

  1. 安装脚手架工具
cargo install ohrs
  1. 初始化项目
ohrs init test
  1. 构建产物
cd test

ohrs build

指南

目前所有API基本对齐napi,你可以在example中看到在HarmonyOS工程中的应用。

Packages

Package Version Description
@ohos-rs/crc32 0.0.1 Fastest CRC32 implementation using SIMD
@ohos-rs/jieba 0.0.1 jieba-rs binding

F&Q

  1. 为什么Rust构建产物体积比官方的CMAKE构建体积大?
    Rust本身的产物体积会比C++大很多。即使使用了各种优化手段因为零抽象成本等各种原因,本身构建的代码体积就会比C++大。
    • 如果对于体积较为敏感的话,可以参考min-sized-rust进行优化。
    • 另外可以使用NDK提供的strip工具进行优化。工具路径:${OHOS_NDK_HOME}/native/llvm/bin/llvm-strip

TODO

  • CI支持 目前鸿蒙开放对于linux下通过NDK构建的能力支持太弱,等到API10放开后支持

  • 鸿蒙官方底层能力包装 如hilog,vulkan,OpenGL等能力