Web (JS)
React
React Native
Apple
Android
| Runtime | Uncompressed | Compressed |
|---|
| canvas-lite | 550KB | 175KB |
| canvas | 1300KB | 550KB |
| webgl2 | 1650KB | 650KB |
See Web (JS) for more details.
See Android and Apple for more details.
| Target | Download Size | Install Size |
|---|
| Framework | | 3.8MB |
| iOS App + RiveRuntime | 1.4MB | 3.9MB |
| macOS App + RiveRuntime | 1.4MB | 4.0MB |

| Target | Download Size | Install Size |
|---|
| ARM-v8a | 2.39MB | 6.58MB |
| ARM-v7a | 2.31MB | 5.67MB |
Components
Rive Android’s binary size is comprised of a number of components:
- Kotlin code compiled to a DEX file
- Rive Android native shared library (
librive-android.so)
- C++ standard library (shared .so file - 394KB download size, 1.2MB install size for ARM-v8a)
- The following Android dependencies:
| Dependency | Reason |
|---|
| Compose: runtime, ui, ui-android | Compose support |
| Lifecycle: runtime-ktx and runtime-compose | Lifecycle awareness in Compose |
| Startup: startup-runtime | Automatic initialization |
| ReLinker | Rive native library loading |
| Volley | Network loading |
Amortization and R8
The sizes listed above reflect adding Rive to an otherwise empty application. Some of the above dependencies may already be present in your application, and as a result do not contribute to the size increase when adding Rive. For example, if your app already uses Jetpack Compose, the Compose dependencies will likely already be included in your app’s binary.The same is true for the C++ standard library, which will be shared across all dependencies with native code.Additionally, when compiling a release build, R8 will minify your application, removing unused code and resources. This can further reduce the size impact of adding Rive to your application. Ensure your Gradle file contains isMinifyEnabled = true.Future Work
There are options available to reduce the binary size of the library that can be considered for future work, including:
- Replacing Miniaudio with Oboe for audio support
- Modularizing the runtime to allow including Compose support only when needed, and separating the Compose API from the Legacy API
- Making Volley an opt-in dependency for network loading
- Changing C++ compile flags to prefer size over speed (requires performance testing)
Third Party Dependencies
The common Rive C++ runtime includes a number of open source third party dependencies which contribute to its binary weight. These are:
| Dependency | Reason |
|---|
| HarfBuzz | Text rendering |
| Miniaudio | Audio support |
| SheenBidi | Bidirectional text support |
| Yoga | Layout |
| Luau Interpreter | Scripting Support |
Luau is currently not included in most runtimes. Once scripting is generally available, expect runtime sizes to increase accordingly.