flutter_rust_bridge如何集成使用

我想在Flutter项目中集成flutter_rust_bridge,但不太清楚具体步骤。请问应该如何正确配置和集成这个库?需要安装哪些依赖,以及如何建立Flutter和Rust之间的通信?能否提供一个简单的示例说明基本用法?

2 回复

Flutter Rust Bridge 集成步骤:

  1. 安装依赖:
cargo install flutter_rust_bridge_codegen
flutter pub add flutter_rust_bridge ffi
  1. 创建 Rust 库:
  • 在项目根目录创建 rust/ 文件夹
  • 配置 Cargo.tomlcdylib 类型
  1. 编写 Rust 代码:
#[frb]
pub fn add(a: i32, b: i32) -> i32 {
    a + b
}
  1. 生成绑定代码:
flutter_rust_bridge_codegen \
  --rust-input rust/src/api.rs \
  --dart-output lib/bridge_generated.dart
  1. Flutter 调用:
import 'bridge_generated.dart';

final rust = RustLibImpl();
int result = await rust.add(a: 1, b: 2);
  1. 平台配置:
  • Android:配置 build.gradle
  • iOS:配置 Podfile

注意:需要安装 Rust 工具链,建议使用 ffigen 处理复杂类型。

更多关于flutter_rust_bridge如何集成使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Flutter Rust Bridge 是一个在 Flutter 应用中集成 Rust 代码的工具,通过 FFI(外部函数接口)实现高性能计算或系统级功能。以下是集成步骤:

  1. 环境准备

    • 安装 Flutter SDK 和 Rust(使用 rustup)。
    • 添加 flutter_rust_bridge 依赖到 pubspec.yaml
      dependencies:
        flutter_rust_bridge: ^1.0.0
      
    • 安装 cargo 工具:cargo install flutter_rust_bridge_codegen
  2. 项目结构
    在 Flutter 项目根目录创建 rust 文件夹,包含:

    • Cargo.toml(配置 Rust 库为 cdylib)。
    • src/lib.rs(编写 Rust 函数)。
  3. 编写 Rust 代码
    lib.rs 中定义函数,例如:

    use flutter_rust_bridge::frb;
    
    #[frb] // 宏标记导出函数
    pub fn add(a: i32, b: i32) -> i32 {
        a + b
    }
    
  4. 生成桥接代码
    运行命令生成 Dart 和 C 胶水代码:

    flutter_rust_bridge_codegen --rust-input rust/src/api.rs --dart-output lib/bridge_generated.dart
    
  5. Flutter 调用
    在 Dart 中导入生成的文件并调用函数:

    import 'bridge_generated.dart';
    
    final rustApi = RustLibImpl();
    int result = await rustApi.add(a: 3, b: 5);
    print(result); // 输出 8
    
  6. 平台配置

    • Android:在 android/app/build.gradle 中添加 jniLibs 路径。
    • iOS:在 Xcode 中链接 .a 库文件。

注意事项

  • 确保 Rust 函数标记 #[frb]
  • 跨平台编译需配置 --target(如 aarch64-apple-ios)。
  • 复杂数据类型需通过 ffigen 处理。

通过以上步骤,即可在 Flutter 中高效调用 Rust 代码,适用于加密、图像处理等场景。

回到顶部