flutter_rust_bridge_codegen如何使用

我在使用flutter_rust_bridge_codegen时遇到了一些问题,具体操作步骤不是很清楚。请问应该如何正确配置和使用这个工具?能否提供一个简单的示例来说明如何生成Rust和Flutter之间的绑定代码?另外,生成后的代码应该如何集成到现有项目中?

2 回复

使用 flutter_rust_bridge_codegen 生成 Flutter 与 Rust 的绑定代码:

  1. pubspec.yaml 添加依赖。
  2. 运行命令生成代码:flutter_rust_bridge_codegen --rust-input path/to/api.rs --dart-output path/to/bridge.dart
  3. 在 Flutter 中调用生成的 Dart 代码即可与 Rust 交互。

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


flutter_rust_bridge_codegenflutter_rust_bridge 工具链中的代码生成器,用于自动生成 Flutter/Dart 与 Rust 之间的绑定代码,简化跨语言调用。以下是基本使用方法:

1. 安装

cargo install flutter_rust_bridge_codegen

2. 基本命令

flutter_rust_bridge_codegen \
  --rust-input path/to/api.rs \
  --dart-output path/to/bridge_generated.dart \
  --c-output path/to/bridge_generated.h

3. 关键参数说明

  • --rust-input: Rust 接口定义文件路径
  • --dart-output: 生成的 Dart 文件路径
  • --c-output: 生成的 C 头文件路径(用于 FFI)
  • --llvm-path: (可选)指定 LLVM 路径
  • --rust-crate-dir: (可选)Rust 项目根目录

4. 配置示例

api.rs 中定义 Rust 接口:

pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

pub struct MyStruct {
    pub value: String,
}

impl MyStruct {
    pub fn new(value: String) -> Self {
        Self { value }
    }
}

运行生成命令后,Dart 端可直接调用生成的绑定代码。

5. 集成到项目

建议在 build.rs 中配置自动生成:

fn main() {
    flutter_rust_bridge_codegen::gen(
        "src/api.rs",
        "../dart/lib/bridge_generated.dart",
        "../dart/lib/bridge_definitions.dart",
    );
}

注意事项

  1. 确保 Flutter 项目已配置 ffi 依赖
  2. Rust 函数需要满足 FFI 安全要求
  3. 复杂数据类型需要通过 #[frb] 宏标记

通过以上步骤即可快速建立 Flutter 与 Rust 的通信桥梁。

回到顶部