nitro:基于 JSI 的 React Native 原生模块开发框架项目

🔥 Insanely fast native C++, Swift or Kotlin modules with a statically compiled binding layer to JSI

分支819Tags127
Nitro Modules

Nitro Modules 是用于 React Native 的快速、类型安全的原生模块,具有静态编译的 JSI 绑定。 它包含两部分:

示例

声明(TypeScript):

export interface Math extends HybridObject<{ ios: 'c++' }> {
  add(a: number, b: number): number
}

实现(C++、Swift 或 Kotlin):

class HybridMath: public HybridMathSpec {
public:
  HybridMath(): HybridObject(TAG) {}
  double add(double a, double b) override {
    return a + b;
  }
}

使用方法(TypeScript):

import { NitroModules } from 'react-native-nitro-modules'

const math = NitroModules.createHybridObject<Math>('Math')
const result = math.add(5, 3)

安装

从 npm 安装 react-native-nitro-modules:

npm i react-native-nitro-modules
cd ios && pod install

文档

支持平台

跨平台

可使用 C++ 构建跨平台原生模块。 任何自定义 C++ 类型均可使用,且能以极低的开销桥接到 JS。

JS <-> C++ 类型转换器是提前静态生成的 - 不再有动态查找或运行时解析错误!🥳

iOS

iOS 原生模块和视图组件可使用纯 C++ 或纯 Swift 编写。 得益于 Swift 5.9,Swift Nitro 模块直接桥接到 C++,而非通过 Objective-C 消息发送。太棒了,不再需要 Objective-C,而且 C++ -> Swift 调用零开销!🥳

Android

Android 原生模块和视图组件可使用纯 C++ 或 Kotlin/Java 编写。 借助 fbjni,即便是复杂类型也能轻松桥接到 Kotlin/Java,且开销极低!🔥

Margelo

Nitro 由 Margelo 用心打造。 我们开发快速且精美的应用。如需咨询服务,请通过 margelo.com 联系我们。

贡献

请阅读 CONTRIBUTING.md 了解贡献流程(PR 要求、修复必写测试规则以及 nitrogen 工作流)。有关环境设置和问题复现步骤,请参阅文档网站上的贡献指南。

许可协议

MIT

项目介绍

🔥 极速原生 C++、Swift 或 Kotlin 模块,配备静态编译的 JSI 绑定层【此简介由AI生成】

定制我的领域
151.97 K124访问 GitHub