React Native TurboModule for QuickJS
npm install react-native-quickjs-turboReact Native TurboModule for QuickJS, implemented entirely in C++.
```
├── android/ # Android构建配置
│ └── build.gradle
├── ios/ # iOS构建配置
│ └── QuickjsTurboModule.mm # iOS模块注册文件
├── src/main/cpp/ # C++源代码
│ ├── QuickjsTurboModule.cpp # 主要实现文件
│ ├── include/
│ │ └── QuickjsTurboModule.h # 头文件
│ └── third-party/ # 第三方库
│ └── CMakeLists.txt # QuickJS库配置
├── CMakeLists.txt # 主CMake配置
├── react-native-quickjs-turbo.podspec # iOS Podspec文件
├── index.js # React Native入口文件
├── package.json # 项目配置
└── README.md # 说明文档
- 全C++实现核心逻辑,跨平台支持
- 集成QuickJS引擎
- 支持执行JavaScript代码
- 支持调用JavaScript函数
- 支持多例JSContext
- 使用React Native新架构的TurboModule
- 支持Android和iOS平台
`bash`
npm install react-native-quickjs-turbo
`javascript
import QuickjsTurboModule from 'react-native-quickjs-turbo';
// 创建新的JSContext
const contextId = await QuickjsTurboModule.createContext();
// 执行JavaScript代码
const result = await QuickjsTurboModule.evaluateJavascript(contextId, '1 + 2');
console.log(result); // 输出: 3
// 执行JavaScript函数(简化实现)
const funcResult = await QuickjsTurboModule.executeFunction(contextId, 'myFunction', [1, 2, 3]);
console.log(funcResult);
// 销毁JSContext
const destroyed = await QuickjsTurboModule.destroyContext(contextId);
console.log(destroyed); // 输出: true
// 创建多个JSContext
const context1 = await QuickjsTurboModule.createContext();
const context2 = await QuickjsTurboModule.createContext();
// 在不同上下文执行代码
const result1 = await QuickjsTurboModule.evaluateJavascript(context1, 'var x = 10; x + 5');
const result2 = await QuickjsTurboModule.evaluateJavascript(context2, 'var x = 20; x + 5');
console.log(result1); // 输出: 15
console.log(result2); // 输出: 25
`
`bash`
cd android
./gradlew assembleDebug
`bash`
cd ios
pod install然后使用Xcode打开.xcworkspace文件进行构建
- React Native 0.70+
- CMake 3.13+
- NDK 25.1+
- QuickjsTurboModule.h:定义了TurboModule的接口QuickjsTurboModule.cpp
- :实现了TurboModule的具体功能CMakeLists.txt
- :配置了C++库的构建index.js`:导出TurboModule供React Native使用
-
MIT