Introduction
Part I: Core
1.
🧠Quickstart
2.
📚 Tutorial: A Flutter+Rust app
2.1.
Android setup
2.1.1.
Alternative NDK setup
3.
🎼 Features
3.1.
Language translations
3.1.1.
Simple correspondence
3.1.2.
Vec and array
3.1.3.
Struct
3.1.4.
Enum
3.1.5.
External types
3.1.6.
Option
3.1.7.
Methods
3.1.8.
Return types
3.1.9.
Dynamic
3.1.10.
Arbitrary Rust types (opaque)
3.1.11.
Arbitrary Dart types (opaque)
3.1.12.
Type alias
3.1.13.
Exceptions
3.1.14.
Parameter defaults
3.2.
Zero copy
3.3.
Stream / Iterator
3.4.
Async in Dart
3.5.
Sync in Dart
3.6.
Concurrency
3.7.
Handler
3.8.
Initialization
3.9.
Async in Rust
3.10.
Multiple files
3.11.
Run in build.rs
3.12.
Cancellable tasks
3.13.
Object pools
3.14.
WASM
3.15.
Miscellaneous
3.16.
Logging
3.17.
Stack Traces
3.18.
Worker pool
Part II: User Guide
4.
Create new projects from a template
4.1.
Creating a new project
4.1.1.
Android setup
4.1.2.
iOS setup
4.1.3.
Web setup
4.1.4.
Windows and Linux
4.1.5.
Other platforms
4.2.
Template tour
4.2.1.
native/src/api.rs
4.2.2.
android/app/build.gradle
4.2.3.
native/native.xcodeproj
4.2.4.
justfile
4.2.5.
rust.cmake
4.3.
Generating code
4.3.1.
Installing codegen
4.3.2.
Adding new code
4.3.3.
Using build_runner
4.3.4.
Wrapping up
5.
Integrating with existing projects
5.1.
Creating a new crate
5.2.
Installing dependencies
5.3.
Integrating with Android
5.3.1.
Hooking onto tasks
5.3.2.
CMake with Gradle
5.4.
Integrating with iOS/MacOS
5.4.1.
Creating the Rust project
5.4.2.
Linking the project
5.4.3.
Generating bindings
5.4.4.
Using dummy headers
5.5.
Integrating with Windows and Linux
5.6.
Integrating with Web
5.7.
Using the dynamic library
5.8.
Wrapping up
6.
Creating a Dart/Flutter library
6.1.
Overview
6.1.1.
Setup
6.1.2.
Monorepo with Melos
6.2.
Creating the libraries
6.2.1.
Dart-only base
6.2.2.
Flutter wrapper
6.3.
Platform specific setup
6.3.1.
Windows & Linux
6.3.2.
iOS & macOS
6.3.3.
Android
6.4.
Continuous Integration & Deployment (CI/CD)
Part III: Contributor Guide
7.
Overview
8.
Overall design
9.
Submodule implementations
9.1.
Rust opaque type safety
9.2.
Dart opaque type safety
10.
Appendix
11.
Translate
Part IV: More Doc
12.
Unit testing in Flutter
13.
Tutorial: Pure Dart
14.
Safety concerns
15.
Troubleshooting
16.
Command line arguments
17.
Set up Flutter/Dart+Rust support from scratch
18.
Building a WASM binary manually
19.
Limitations of WASM
20.
Articles
20.1.
Async in Rust
20.2.
Generate multiple files
Light
Rust
Coal
Navy
Ayu
flutter_rust_bridge
English
ç®€ä½“ä¸æ–‡
Submodule implementations
In this chapter, we will present implementations and discussions for various submodules.