> ## Documentation Index
> Fetch the complete documentation index at: https://rive.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Feature Support

As the Rive Editor evolves, some new features require updates to the Rive runtimes. In certain cases, this may introduce new or modified APIs. We recommend staying on the latest runtime version to ensure compatibility, bug fixes, and performance improvements.Use the table below to verify whether a feature used in your `.riv` file is supported by your target runtime.> [!WARNING]
>
> Certain features require the use of the Rive Renderer at runtime. See our
> documentation on [choosing a renderer](https://rive.app/docs/runtimes/choose-a-renderer/).
> Layer Masks require GPU Canvas in every runtime.When a feature requires API changes, migration notes will be included below.## Feature support by runtime

\> [accordion] Web
\>
\> * **WebGL2** (`@rive-app/webgl2`): The recommended package for most web projects. Uses the Rive Renderer, so it supports every Rive Editor feature, including vector feathering.
\> * **Canvas** (`@rive-app/canvas`): Uses the browser's Canvas2D renderer.
\> * **Canvas Lite** (`@rive-app/canvas-lite`): Uses the same API as `@rive-app/canvas`, but excludes certain features to reduce bundle size.
\>
\> See [Canvas vs WebGL2](https://rive.app/docs/runtimes/web/canvas-vs-webgl.md) for the tradeoffs.
\>
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion] React
\>
\> * **WebGL2** (`@rive-app/react-webgl2`): The recommended package for most React projects. Uses the Rive Renderer, so it supports every Rive Editor feature, including vector feathering.
\> * **Canvas** (`@rive-app/react-canvas`): Uses the browser's Canvas2D renderer.
\> * **Canvas Lite** (`@rive-app/react-canvas-lite`): Uses the same API as `@rive-app/react-canvas`, but excludes certain features to reduce bundle size.
\>
\> See [Canvas vs WebGL2](https://rive.app/docs/runtimes/web/canvas-vs-webgl.md) for the tradeoffs.
\>
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> Versions refer to the `@rive-app/react-native` package, built with Nitro.
\>
\> GPU Canvas is supported on iOS and Android in `0.5.3` and later. It is disabled by default. Enable it before loading any Rive files:
\>
\> ```ts theme={null}
\> import { RiveRuntime } from '@rive-app/react-native';
\>
\> RiveRuntime.setGPUCanvasEnabled(true);
\> ```
\>
\> This setting applies to every Rive file in the app. Changes made after file loading begins are ignored. If you [override the native SDK versions](https://rive.app/docs/runtimes/react-native/native-version-customization.md), GPU Canvas requires Rive iOS `6.25.0` or later and Rive Android `11.12.0` or later.
\>
\> Layer Masks require GPU Canvas on both iOS and Android. With the bundled native SDKs, they are supported on iOS in `0.5.3` and later, and on Android in `0.5.7` and later. Layer Masks are not supported in iOS simulators. If you override the native SDK versions, use Rive iOS `6.28.0` or later and Rive Android `11.13.0` or later.
\>
\> Semantics are supported on iOS in `0.5.0` and later. Import `Semantics` from `@rive-app/react-native` and set `semantics={Semantics.Automatic}` on `RiveView` to enable accessibility when VoiceOver is running.
\>
\> > \\[!NOTE]
\> >
\> > In `0.5.0` and later, the deprecated event and text-run methods are unavailable. Use [data binding](https://rive.app/docs/runtimes/react-native/data-binding.md) to listen for triggers and update text instead.
\>
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> > \\[!WARNING]
\> >
\> > Layer Masks require [GPU Canvas](https://rive.app/docs/runtimes/apple/gpu-canvas.md) (the deferred renderer) on Apple platforms. They are supported on physical devices, Mac Catalyst, and macOS, but are not supported in simulators.
\>
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>

## Runtime support by featureA green checkmark (✅) indicates that a feature is supported in all relevant runtimes.
A yellow circle (🟡) indicates that support varies by runtime or renderer.Differences may reflect:* Platform or SDK limitations where a feature cannot be supported
* Staggered releases as features roll out across runtimes, or
* Lightweight (“lite”) builds that intentionally omit some features to reduce package size.> [!NOTE]
>
> A feature may still be considered fully supported even if it is unavailable in legacy runtimes.

\> [accordion]
\>
\> Layer Masks require the Rive Renderer with GPU Canvas enabled in every runtime. On [Web](https://rive.app/docs/runtimes/web/gpu-canvas.md) and [React](https://rive.app/docs/runtimes/react/gpu-canvas.md), use the WebGL2 package and enable GPU Canvas; Canvas, Canvas Lite, and legacy WebGL packages do not support Layer Masks.
\>
\> On Apple, enable [GPU Canvas](https://rive.app/docs/runtimes/apple/gpu-canvas.md). Layer Masks are supported on physical devices, Mac Catalyst, and macOS, but are not supported in simulators.
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> GPU Canvas enables 3D and shader content. See each runtime section for more details.
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> On Apple, this feature requires the Swift Concurrency API. See [Global View Models](https://rive.app/docs/runtimes/apple/data-binding.md#global-view-models).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> On Apple, this feature requires the Swift Concurrency API. See [Data Binding](https://rive.app/docs/runtimes/apple/data-binding.md).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> Accessibility voice over support with [Semantics](https://rive.app/docs/editor/accessibility/semantics.md).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> Support for Rive files with [Scripting](https://rive.app/docs/scripting).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> Data binding lists, images, and artboards were added after initial data binding support.
\>
\> See [Data Binding Overview](https://rive.app/docs/editor/data-binding/overview.md) and [Data Binding for Runtimes](https://rive.app/docs/runtimes/data-binding).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> See [Data Binding Overview](https://rive.app/docs/editor/data-binding/overview.md) and [Data Binding for Runtimes](https://rive.app/docs/runtimes/data-binding).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> See [N-Slicing](https://rive.app/docs/editor/layouts/n-slicing.md).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> Allows Rive to automatically update the artboard size as the underlying view/canvas/widget/texture size changes. See [Layouts](https://rive.app/docs/editor/layouts/layouts-overview.md).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> Allows Rive to use a fallback font if a glyph is not available. A default font is automatically chosen, or you can optionally configure the desired fallback font based on various options. See [Fallback Fonts](https://rive.app/docs/runtimes/text#fallback-fonts).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> See [Rive Events](https://rive.app/docs/runtimes/rive-events) and [Audio Events](https://rive.app/docs/editor/events/audio-events.md).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> See [Loading Assets](https://rive.app/docs/runtimes/loading-assets).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> See [Text](https://rive.app/docs/runtimes/text).
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>

## Legacy**Legacy runtimes**

\> [accordion]
\>
\> > \\[!WARNING]
\> >
\> > The `@rive-app/webgl` runtime is deprecated as of `v2.37.0`. Use `@rive-app/webgl2` (recommended for most content), or `@rive-app/canvas`.
\>
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> > \\[!WARNING]
\> >
\> > The `@rive-app/react-webgl` runtime is deprecated as of `v4.30.0`. Use `@rive-app/react-webgl2` (recommended for most content), or `@rive-app/react-canvas`.
\>
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>



\> [accordion]
\>
\> > \\[!WARNING]
\> >
\> > The `rive-react-native` runtime is deprecated. For better performance and the latest features, use `rive-nitro-react-native`.
\> >
\> > [Migration guide](https://rive.app/docs/runtimes/react-native/migration-guide.md#migrating-from-rive-react-native-to-@rive-app/react-native)
\>
\>
\> <table><thead><tr><th>**Feature**</th></tr></thead>
\>                             <tbody /></table>

**Deprecated features**

\> [accordion]
\>
\> > \\[!WARNING]
\> >
\> > Listening to [Rive Events](https://rive.app/docs/runtimes/rive-events) at runtime is deprecated and will be removed in future versions.
\> >
\> > Use [Data Binding](https://rive.app/docs/runtimes/data-binding) to listen for triggers or changes to properties instead.
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>



\> [accordion]
\>
\> > \\[!WARNING]
\> >
\> > Setting text, including [nested text](https://rive.app/docs/runtimes/text#read-update-nested-text-runs-at-runtime), at runtime is deprecated and will be removed in a future version.
\> >
\> > Instead, use [Data Binding](https://rive.app/docs/runtimes/data-binding) to update a string, which is bound to a text run.
\>
\>
\> <table><thead><tr><th>**Runtime**</th>
\>                                 <th>**Version**</th></tr></thead>
\>                         <tbody /></table>

