🔥 Insanely fast native C++, Swift or Kotlin modules with a statically compiled binding layer to JSI
当前访问频次受限,请登录后继续访问
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
Nitro Modules 是用于 React Native 的快速、类型安全的原生模块,具有静态编译的 JSI 绑定。 它包含两部分:
- react-native-nitro-modules:驱动所有 nitro 模块的核心 C++ 库
- nitrogen:供 nitro 模块库作者使用的可选代码生成器
示例
声明(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
文档
- Nitro 文档 📚
- 社区 Discord 💬
- Nitro 模块构建器 AI GPT 🤖
- 如何构建 Nitro 模块 YouTube 教程 ▶️
- nitrogen/README.md
- react-native-nitro-modules/README.md
- react-native-nitro-test 示例模块
TestObject.nitro.ts示例 playground
支持平台
跨平台
可使用 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