rinf
Rust for native business logic, Flutter for flexible and beautiful GUI
8.10.1
3.4K downloads/mo
#4408 most downloaded on pub.dev
cunarist/rinf
What this package is like to depend on
Last release 9 days ago
15 Aug 2026
Release timing varies
gaps range from 1 weeks to 5 months
Nearly every release is documented
notes for 81 of 81 stable releases
6 versions withdrawn
withdrawn after publishing
3 years old
94 releases · first in 2023
6 releases in the last 12 months
see the full history below
Release timeline
94 releases · Oct 2023 to Aug 2026Releases
latest 60 of 94-
8.10.115 Aug 2026Release notes
Open source →What's Changed
- Use Ty for Python type checking by @temeddix in #676
- feat: add agent context (memory, skills, AGENTS.md) by @temeddix in #683
Full Changelog: v8.10.0...v8.10.1
-
8.10.009 Mar 2026Release notes
Open source →What's Changed
- Bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #670
- Bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #671
- Support ohos by @gavinliu in #665
New Contributors
Full Changelog: v8.9.1...v8.10.0
Summary
- Added OpenHarmony (OHOS) support.
-
8.9.118 Feb 2026Release notes
Open source →What's Changed
- Update Cargokit by @temeddix in #663
- Prevent long-line truncation in debug_print by @markuslevonyak in #667
Full Changelog: v8.9.0...v8.9.1
Summary
- Now Rinf's
debug_print!macro usesdebugPrintfrom Flutter.
-
8.9.027 Jan 2026Release notes
Open source →What's Changed
- Bump docker/build-push-action from 5 to 6 by @dependabot[bot] in #654
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #655
- Update reqwest requirement from 0.12.1 to 0.13.0 by @dependabot[bot] in #658
- Update bevy_ecs requirement from 0.17 to 0.18 by @dependabot[bot] in #660
- Clarify Dart and Rust version requirements by @temeddix in #661
Full Changelog: v8.8.1...v8.9.0
Summary
- Added toolchain version requirements.
- This version supports Flutter 3.24/Dart 3.5 and Rust 1.88 or later.
Release notes
Open source →- Added toolchain version requirements.
- This version supports Flutter 3.24/Dart 3.5 and Rust 1.88 or later.
-
8.8.107 Dec 2025Release notes
Open source →What's Changed
- Use
ALLRuff rules by @temeddix in #652 - Bump actions/checkout from 5 to 6 by @dependabot[bot] in #651
- Containerize docs and demo by @temeddix in #653
Full Changelog: v8.8.0...v8.8.1
Summary
- Fixed a bug where web compilation was broken.
- Use
-
8.8.013 Nov 2025Release notes
Open source →What's Changed
- Make Clippy happy and fix CI broken due to GitHub changes by @temeddix in #644
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #636
- Update bevy_ecs requirement from 0.16 to 0.17 by @dependabot[bot] in #643
- Bump actions/setup-java from 4 to 5 by @dependabot[bot] in #639
- Add
Cargo.lockto the CLI crate by @temeddix in #645 - Bump astral-sh/setup-uv from 6 to 7 by @dependabot[bot] in #646
- feat: Add Windows ARM64 support to cargokit build targets by @OneUI8 in #650
New Contributors
Full Changelog: v8.7.2...v8.8.0
-
8.7.203 Aug 2025Release notes
Open source →What's Changed
Full Changelog: v8.7.1...v8.7.2
Summary
- Fixed a bug where non-Rust files were being included in signal detection.
Release notes
Open source →- Fixed a bug where non-Rust files were being included in signal detection.
-
8.7.115 Jul 2025Release notes
Open source →What's Changed
- Check signal name only for signals by @markuslevonyak in #626
Full Changelog: v8.7.0...v8.7.1
Summary
- Fixed a bug where non-signal structs were incorrectly included in duplication detection.
Release notes
Open source →- Fixed a bug where non-signal structs were incorrectly included in duplication detection.
-
8.7.004 Jul 2025Release notes
Open source →What's Changed
- Bump creyD/prettier_action from 4.5 to 4.6 by @dependabot in #621
- Update serde-generate requirement from 0.31.0 to 0.32.0 by @dependabot in #622
- Enable getting the latest message from
rustSignalStreamby @temeddix in #624
Full Changelog: v8.6.0...v8.7.0
Summary
- Now getting the latest signal value from
rustSignalStreamis possible. This is useful when you're building and mounting a new widget.
Release notes
Open source →- Now getting the latest signal value from
rustSignalStreamis possible. This is useful when you're building and mounting a new widget.
-
8.6.004 Jun 2025Release notes
Open source →What's Changed
- Respect Serde's skip attribute by @Noah765 in #617
- Ban extra field attributes from Serde by @temeddix in #618
New Contributors
Full Changelog: v8.5.0...v8.6.0
Summary
- Now
#[serde(skip)]attributes are supported. - Some field attributes from Serde are now treated as syntax errors at compile-time for safer messaging.
Release notes
Open source →- Now
#[serde(skip)]attributes are supported. - Some field attributes from Serde are now treated as syntax errors at compile-time for safer messaging.
-
8.5.003 Jun 2025 -
8.4.024 May 2025 -
8.3.223 May 2025Release notes
Open source →- The problem of
libhub.sonot being found on Android has been fixed. This was because of the new Flutter template updated by Google. If you experience any issues, we recommend replacing theandroiddirectory under the Flutter project with the latest one.
- The problem of
-
8.3.121 May 2025Release notes
Open source →- Now signal structs with numbers in their names work properly with
rinf gen. - Fixed an issue where
DartSignalBinarygenerated code contained an extra curly bracket.
- Now signal structs with numbers in their names work properly with
-
8.3.017 May 2025Release notes
Open source →- Now
finalizeRustproperly blocks the Dart thread until Rust async runtime is completely dropped. - Several Dart functions have been changed to non-async, which is more appropriate for their functionality.
- Documentation comments have been improved.
- Now
-
8.2.007 May 2025Release notes
Open source →- The trait bounds of signal traits have been reorganized.
- Internal code structure has been improved.
-
8.1.026 Apr 2025Release notes
Open source →DartSignalandDartSignalBinaryare now non-generic traits. This allows for cleaner and more straightforward signal handling.
-
8.0.002 Apr 2025Release notes
Open source →- To migrate from Rinf version 7, refer to this section in the documentation.
- Rinf no longer uses Protobuf. It now uses Serde. You should annotate Rust structs to define signal endpoints between Dart and Rust.
- Fixed an issue with loading the app on the web.
- Improved documentation in various areas.
-
8.0.0-rc01 Apr 2025 pre-release -
8.0.0-beta01 Apr 2025 pre-release -
8.0.0-alpha30 Mar 2025 pre-release -
7.3.128 Mar 2025 -
7.3.028 Feb 2025Release notes
Open source →- It is now possible to use other Flutter packages that rely on Rust by removing a mechanism that might cause symbol conflicts.
-
7.2.022 Feb 2025 -
7.1.114 Feb 2025Release notes
Open source →- Now, generated Rust message files are automatically formatted.
- Deprecated
dart:jsanddart:htmlhave been replaced withdart:js_interopandpackage:web.
-
7.1.023 Oct 2024Release notes
Open source →- Fixed JavaScript bindings on the web, resolving errors related to the missing
rinfJavaScript object in web workers. - Cleaned up the usage of the global JavaScript namespace on the web.
- Fixed JavaScript bindings on the web, resolving errors related to the missing
-
7.0.422 Oct 2024 -
7.0.318 Oct 2024Release notes
Open source →- Fixed a problem where generated Rust message structs were unable to import other messages.
-
7.0.203 Oct 2024 -
7.0.129 Sep 2024 -
7.0.021 Sep 2024Release notes
Open source →- To migrate from Rinf version 6, please refer to this section in the documentation.
- Rinf no longer relies on
tokio. While it is provided by default in the template, you can now choose whichever async runtime you prefer. - The CLI output is now more compact and includes animations.
- The full
flutter runcommand with the necessary arguments can now be obtained by runningrinf server. - It is now recommended to import compiled message classes and structs from the root messages module.
- Memory copying for messages sent from Dart to Rust has been reduced. This was achieved using Dart's FFI feature called 'leaf calls.'
-
7.0.0-beta18 Sep 2024 pre-release -
7.0.0-alpha16 Sep 2024 pre-release -
6.15.027 Jul 2024Release notes
Open source →- Now it's possible to add attributes to generated message structs in Rust.
-
6.14.209 Jul 2024Release notes
Open source →- Now, the message channels work after reopening the app following the use of the back button on mobile devices.
-
6.14.107 Jul 2024Release notes
Open source →- The return type of Rust's
mainfunction can now be anything. - Fixed the issue causing the app to hang on the splash screen after closing it with the back button on Android.
- The return type of Rust's
-
6.14.030 Jun 2024 -
6.13.029 Jun 2024Release notes
Open source →- The
get_dart_signal_receiverfunction now returnsResult. You need to useunwrapor?to retrieve Dart signal receivers from the generated message structs. - You now need to manually provide the generated
assignRustSignalto theinitializeRustfunction, which can be imported usingimport 'package:rinf/rinf.dart';in Dart. - The tokio runtime will now default to being single-threaded. To use a multi-threaded tokio runtime, enable the new
rt-multi-threadcrate feature. - By default, backtraces will be hidden in the CLI, with only the error message being printed. To display the Rust backtrace, enable the new
backtracecrate feature.
- The
-
6.12.108 Jun 2024 -
6.12.008 Jun 2024Release notes
Open source →- Generated message channels are now more efficient.
- Minimum Android SDK version increased from 16 to 21.
- The
finalizeRust()function in Dart has been removed. Thetokioasync runtime, which holds Rust logic, still drops automatically when the app ends. - Bumped
prostversion to 0.12.6. - Internal code has been organized.
-
6.11.102 Jun 2024Release notes
Open source →- Fixed a bug with Dart's extension methods in the generated message code.
-
6.11.001 Jun 2024Release notes
Open source →- Now it's possible to set the dynamic library's path.
- Now
rinf messagegenerates more memory-efficient and cleaner code.
-
6.10.022 May 2024Release notes
Open source →- Early Dart signals are now stored in the tokio channel instead of being ignored. Their performance is also slightly better.
- Excessive sample code is not included in the template from the
rinf templatecommand anymore. - Now
tokiois enabled by default in the template, nottokio_with_wasm. - A configuration option,
rinf.message.rust_serde, was added to make generated Rust message files compatible withserde.
-
6.9.219 May 2024 -
6.9.118 May 2024 -
6.9.015 May 2024Release notes
Open source →- This version supports Flutter 3.22.
- The new version of Flutter has a little different way of resolving paths. This release adapts to this change.
-
6.8.005 May 2024Release notes
Open source →- Now
sendSignalToRustandsend_signal_to_dartmethods no longer requirenullorNone, making the API much cleaner. To make them include binary data, write[RINF:DART-SIGNAL-BINARY]or[RINF:RUST-SIGNAL-BINARY]in Protobuf files. - The problem of panicking from null pointers that arise from empty signal data has been fixed.
- Now
-
6.7.015 Mar 2024 -
6.6.312 Mar 2024 -
6.6.229 Feb 2024Release notes
Open source →- Updated
tokio_with_wasmto a newer version that addresses performance issues withspawn_blocking. - Added example code that shows how to use global state in
sample_functions.rsfile.
- Updated
-
6.6.117 Feb 2024Release notes
Open source →- Added support for some Linux distributions where patching Flutter SDK is not possible.
- Fixed a problem with the web sector not working. To use this new version, it's recommended to discard all Git changes in Flutter SDK's directory, or simply run
flutter upgrade --force. - Fixed a problem with
cderror on Windows. - Fixed
pub.devpackage score.
-
6.6.006 Feb 2024Release notes
Open source →- Now early Rust signals on startup works properly, even if the widgets are not built yet.
rustSignalStreamwill remember Rust signals that were received before widgets were built, and give them to the first listener.
- Now early Rust signals on startup works properly, even if the widgets are not built yet.
-
6.5.005 Feb 2024Release notes
Open source →- Now the native library file is loaded as dynamic library, not static library, on iOS and macOS, like other platforms. This reduces the possibility of potential conflicts of native symbols.
- Now
rinf templatecheckspubspec.yamlinstead oflib/main.dartto ensure that the current folder is a Flutter project.
-
6.4.003 Feb 2024 -
6.3.101 Feb 2024 -
6.3.001 Feb 2024Release notes
Open source →- The interface code has been organized. Now the
bridgeRust module is gone and the API makes more sense. Please refer to the example code to upgrade.
- The interface code has been organized. Now the
-
6.2.030 Jan 2024Release notes
Open source →- Now custom installation of
protocworks. This is useful when you don't have full access to GitHub APIs, which is needed for automaticprotocinstallation. - Signal handling has become more efficient.
- Now custom installation of
-
6.1.024 Jan 2024 -
6.0.123 Jan 2024 -
6.0.022 Jan 2024Release notes
Open source →- You need to run
rinf template,cargo install rinfagain to use this new version. - Now the communication between Dart and Rust is much simpler. You can mark messages in
.protofiles so that Rinf's code generator can generate channels in-between. This new system is not compatible with older Rinf versions, so please check the docs before you upgrade. - Added the ability to customize Rinf's behaviors by writing fields inside
pubspec.yamlfile. - Allowed users to check when the documentation page was made and edited.
- Now it's possible to quit
rinf message --watchby pressingqon your keyboard. - Internal code has been organized.
- You need to run