- 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. Tuples
- 3.1.6. External types
- 3.1.7. Option
- 3.1.8. Methods
- 3.1.9. Return types
- 3.1.10. Dynamic
- 3.1.11. Arbitrary Rust types (opaque)
- 3.1.12. Arbitrary Dart types (opaque)
- 3.1.13. Type alias
- 3.1.14. Result / Exceptions
- 3.1.15. 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
- 3.19. Expanding macros
- 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
- Part IV: More Doc
- 11. Unit testing in Flutter
- 12. Tutorial: Pure Dart
- 13. Safety concerns
- 14. Troubleshooting
- 15. Command line arguments
- 16. Set up Flutter/Dart+Rust support from scratch
- 17. Building a WASM binary manually
- 18. Limitations of WASM
- 19. Articles
- 19.1. Async in Rust
- 19.2. Generate multiple files