Rive Native
A Flutter runtime that integrates the Rive Renderer and the core Rive C++ runtime.
Note that certain Rive features may not be supported yet for a particular runtime, or may require using the Rive Renderer.
For more details, refer to the feature support and choosing a renderer pages.
Rive Native is a new runtime that enables you to display and interact with Rive graphics in your Flutter app, powered by the Rive Renderer.
Rive Native vs Rive
rive_native
does not replace the current Rive Flutter runtime (rive
). Instead, we are working on integrating rive_native
into the rive
package. You can use rive_native
independently if desired, and the API will remain largely consistent between rive_native
and rive
. However, the rive
package may expose additional APIs or functionality in the future.
We encourage you to start using rive_native
today and share your feedback with us.
Key Differences Between rive_native
and rive
-
C++ Runtime Integration:
rive_native
is built on Rive’s C++ runtime via FFI, replacing the Dart implementation. This ensures a consistent experience across platforms and the Rive Editor, while unlocking performance improvements and new features exclusive to the C++ runtime, such as:- Responsive Layouts
- Scrolling
- N-Slicing
- Feathering
-
Rive Renderer Support:
rive_native
introduces the Rive Renderer to Flutter. While you can still use the Flutter-based renderer (Dart/Impeller), the Rive Renderer is recommended for performance-critical use cases. Some features, like Feathering, are only supported with the Rive Renderer. For more details, see our Feature Support page.
Getting Started
rive_native
is not yet publicly available on GitHub but will be soon. For now, you can pull the source code and example by running:
A higher-level declarative API is under development to simplify working with Rive graphics in Flutter.
For an example implementation, see the rive_player.dart
file in rive_native/example/rive_player.dart
.
Platform Support
Platform | Flutter Renderer | Rive Renderer |
---|---|---|
iOS | ✅ | ✅ |
Android | ✅ | ✅ |
macOS | ✅ | ✅ |
Windows | ✅ | ✅ |
Linux | ❌ | ❌ |
Web | ✅ | ✅ |
Note: Android support is currently limited to
arm
andarm64
architectures.
Feature Support
The following runtime features are supported by rive_native
:
Feature | Support |
---|---|
Set State Machine Inputs | ✅ |
Set State Machine Nested Inputs | ✅ |
Updating Text Runs | ✅ |
Updating Nested Text Runs | ✅ |
Responsive Layouts | ✅ |
Rive Audio | ✅ |
Out-of-Band Assets | ✅ |
Rive Events | ✅ |
Troubleshooting
The required native libraries should be automatically downloaded during the build step (flutter run
or flutter build
). If you encounter issues, try the following:
- Run
flutter clean
- Run
flutter pub get
- Run
flutter run
Alternatively, you can manually run the rive_native
setup script. In the root of your Flutter app, execute:
This will clean the rive_native
setup and download the platform-specific libraries specified with the --platform
flag. Refer to the Platform Support section above for details.
Building rive_native
By default, prebuilt native libraries are downloaded and used. If you prefer to build the libraries yourself, use the --build
flag with the setup script:
Note: Building the libraries requires specific tooling on your machine. Additional documentation will be provided soon.
Testing
Shared libraries are included in the download/build process. If you encounter issues using rive_native
in your tests, please reach out to us for assistance.
Was this page helpful?