flutter_rust_bridgeとは
flutter_rust_bridge
は、Flutter/DartとRustの間で高レベルでメモリセーフなバインディングを生成するパッケージです。

flutter_rust_bridge | Dart package
High-level memory-safe binding generator for Flutter/Dart Rust
使い方
インストール
dependencies:
flutter:
sdk: flutter
flutter_rust_bridge: ^1.82.6
Rust側の設定
Rust側の設定として、必要な依存関係をCargo.toml
に追加します。
[dependencies]
flutter_rust_bridge = "1.82.6"
FlutterとRustの連携コード生成
flutter_rust_bridge
のコード生成ツールを使用して、FlutterとRustの間でデータをやり取りするためのコードを生成します。以下のコマンドを実行します。
flutter_rust_bridge_codegen --rust-input src/api.rs --dart-output lib/api.dart
ここで、src/api.rs
はRust側のエントリーポイントファイル、lib/api.dart
は生成されるDartコードの出力先です。
Rustの関数を定義する
RustのコードでFlutterから呼び出す関数を定義します。以下は簡単な例です。
use flutter_rust_bridge::StreamSink;
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
pub fn get_data(sink: StreamSink<String>) {
sink.add("Hello from Rust!".to_string());
}
FlutterからRustの関数を呼び出す
Dart側で生成されたコードをインポートし、Rustの関数を呼び出します。
import 'package:flutter_rust_bridge/flutter_rust_bridge.dart';
import 'api.dart'; // 自動生成されたファイル
void main() {
final result = api.add(1, 2);
print(result); // 3
final stream = api.getData();
stream.listen((data) {
print(data); // "Hello from Rust!"
});
}
パラメータの詳細
add関数
- 引数
a
(int): 足し算する最初の整数b
(int): 足し算する二番目の整数- 戻り値
- (int):
a
とb
の合計
getData関数
- 引数
sink
(StreamSink): Rust側から文字列データを受け取るためのシンク- 戻り値
- (Stream): 文字列データのストリーム