> ## 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

export const FeatureSupportGroup = ({feature, runtime, title, children}) => {
  const defaultOpen = false;
  const runtimeTitles = {
    webCanvas: "Web - Canvas",
    webWebGL: "Web - WebGL (Legacy)",
    webWebGL2: "Web - WebGL2",
    webCanvasLite: "Web - Canvas Lite",
    reactCanvas: "React - Canvas",
    reactCanvasLite: "React - Canvas Lite",
    reactWebGL: "React - WebGL (Legacy)",
    reactWebGL2: "React - WebGL2",
    reactNative: "React Native",
    reactNativeLegacy: "React Native (Legacy)",
    flutter: "Flutter",
    apple: "Apple",
    android: "Android",
    cpp: "C++",
    unity: "Unity",
    unreal: "Unreal"
  };
  const runtimesInOrder = ["webWebGL2", "webCanvas", "webCanvasLite", "reactWebGL2", "reactCanvas", "reactCanvasLite", "reactNative", "flutter", "apple", "android", "cpp", "unity", "unreal", "webWebGL", "reactWebGL", "reactNativeLegacy"];
  const legacyRuntimes = ["webWebGL", "reactWebGL", "reactNativeLegacy"];
  const featuresInOrder = ["gamepad", "textInput", "focus", "statefulComponents", "gpuCanvas", "globalViewModels", "dataBindingFonts", "semantics", "scripting", "dataBindingListsImagesArtboards", "rightToLeftLayoutsText", "textFollowPath", "dataBinding", "vectorFeathering", "nSlicing", "layouts", "fallbackFonts", "audio", "outOfBandAssets", "text", "cachingARiveFile", "events", "nestedText"];
  const features = {
    gamepad: {
      title: "Gamepad",
      runtimes: {
        webCanvas: {
          supported: false,
          description: "Coming soon"
        },
        webCanvasLite: {
          supported: false,
          description: "Coming soon"
        },
        webWebGL: {
          supported: false,
          description: "Coming soon"
        },
        webWebGL2: {
          supported: false,
          description: "Coming soon"
        },
        reactCanvas: {
          supported: false,
          description: "Coming soon"
        },
        reactCanvasLite: {
          supported: false,
          description: "Coming soon"
        },
        reactWebGL: {
          supported: false,
          description: "Coming soon"
        },
        reactWebGL2: {
          supported: false,
          description: "Coming soon"
        },
        reactNative: {
          supported: false,
          description: "Coming soon"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Coming soon"
        },
        flutter: {
          supported: false,
          description: "Coming soon"
        },
        apple: {
          supported: false,
          description: "Coming soon"
        },
        android: {
          supported: false,
          description: "Coming soon"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: false,
          description: "Coming soon"
        },
        unreal: {
          supported: false,
          description: "Coming soon"
        }
      }
    },
    textInput: {
      title: "Text Input",
      runtimes: {
        webCanvas: {
          supported: false,
          description: "Coming soon"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: false,
          description: "Coming soon"
        },
        webWebGL2: {
          supported: false,
          description: "Coming soon"
        },
        reactCanvas: {
          supported: false,
          description: "Coming soon"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: false,
          description: "Coming soon"
        },
        reactWebGL2: {
          supported: false,
          description: "Coming soon"
        },
        reactNative: {
          supported: false,
          description: "Coming soon"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Coming soon"
        },
        flutter: {
          supported: false,
          description: "Coming soon"
        },
        apple: {
          supported: false,
          description: "Coming soon"
        },
        android: {
          supported: false,
          description: "Coming soon"
        },
        cpp: {
          supported: false,
          description: "Coming soon"
        },
        unity: {
          supported: false,
          description: "Coming soon"
        },
        unreal: {
          supported: false,
          description: "Coming soon"
        }
      }
    },
    focus: {
      title: "Focus",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.43.1"
        },
        webCanvasLite: {
          supported: true,
          version: "2.43.1"
        },
        webWebGL: {
          supported: false,
          description: "Not supported"
        },
        webWebGL2: {
          supported: true,
          version: "2.43.1"
        },
        reactCanvas: {
          supported: true,
          version: "4.35.0"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.35.0"
        },
        reactWebGL: {
          supported: false,
          description: "Not supported"
        },
        reactWebGL2: {
          supported: true,
          version: "4.35.0"
        },
        reactNative: {
          supported: false,
          description: "Coming soon"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Coming soon"
        },
        flutter: {
          supported: false,
          description: "Coming soon"
        },
        apple: {
          supported: false,
          description: "Coming soon"
        },
        android: {
          supported: false,
          description: "Coming soon"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: false,
          description: "Coming soon"
        },
        unreal: {
          supported: false,
          description: "Coming soon"
        }
      }
    },
    statefulComponents: {
      title: "Stateful Components",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.33.0+"
        },
        webCanvasLite: {
          supported: true,
          version: "2.33.0+"
        },
        webWebGL: {
          supported: true,
          version: "2.33.0+"
        },
        webWebGL2: {
          supported: true,
          version: "2.33.0+"
        },
        reactCanvas: {
          supported: true,
          version: "4.25.0+"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.25.0+"
        },
        reactWebGL: {
          supported: true,
          version: "4.25.0+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.25.0+"
        },
        reactNative: {
          supported: true,
          version: "0.3.1+"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Not supported"
        },
        flutter: {
          supported: true,
          version: "0.14.1+"
        },
        apple: {
          supported: true,
          version: "6.16.0+"
        },
        android: {
          supported: true,
          version: "11.2.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.4.5"
        },
        unreal: {
          supported: true,
          version: "0.4.25"
        }
      }
    },
    gpuCanvas: {
      title: "GPU Canvas",
      runtimes: {
        webCanvas: {
          supported: false,
          na: true
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: false,
          description: "Not supported"
        },
        webWebGL2: {
          supported: true,
          version: "2.42.0+"
        },
        reactCanvas: {
          supported: false,
          na: true
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: false,
          description: "Not supported"
        },
        reactWebGL2: {
          supported: true,
          version: "4.34.0+"
        },
        reactNative: {
          supported: true,
          version: "0.5.3+"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Not supported"
        },
        flutter: {
          supported: true,
          version: "0.15.0-dev.1"
        },
        apple: {
          supported: true,
          version: "6.25.0"
        },
        android: {
          supported: true,
          version: "11.12.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: false,
          description: "Coming soon"
        },
        unreal: {
          supported: true,
          version: "0.4.26"
        }
      }
    },
    globalViewModels: {
      title: "Global View Models",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.39.2+"
        },
        webCanvasLite: {
          supported: true,
          version: "2.39.2+"
        },
        webWebGL: {
          supported: false,
          description: "Not supported"
        },
        webWebGL2: {
          supported: true,
          version: "2.39.2+"
        },
        reactCanvas: {
          supported: true,
          version: "4.31.0+"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.31.0+"
        },
        reactWebGL: {
          supported: false,
          description: "Not supported"
        },
        reactWebGL2: {
          supported: true,
          version: "4.31.0+"
        },
        reactNative: {
          supported: false,
          description: "Coming soon"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Not supported"
        },
        flutter: {
          supported: false,
          description: "Coming soon"
        },
        apple: {
          supported: true,
          version: "6.28.0+"
        },
        android: {
          supported: true,
          version: "11.11.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.4.5-canary.34+"
        },
        unreal: {
          supported: false,
          description: "Coming soon"
        }
      }
    },
    dataBindingFonts: {
      title: "Data Binding Fonts",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.39.2+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: false,
          description: "Not supported"
        },
        webWebGL2: {
          supported: true,
          version: "2.39.2+"
        },
        reactCanvas: {
          supported: true,
          version: "4.31.0+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: false,
          description: "Not supported"
        },
        reactWebGL2: {
          supported: true,
          version: "4.31.0+"
        },
        reactNative: {
          supported: false,
          description: "Coming soon"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Not supported"
        },
        flutter: {
          supported: false,
          description: "Coming soon"
        },
        apple: {
          supported: true,
          version: "6.28.0+"
        },
        android: {
          supported: true,
          version: "11.13.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.4.5-canary.36+"
        },
        unreal: {
          supported: false,
          description: "Coming soon"
        }
      }
    },
    semantics: {
      title: "Semantics",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.39.0+"
        },
        webCanvasLite: {
          supported: true,
          version: "2.39.0+"
        },
        webWebGL: {
          supported: false,
          description: "Not supported"
        },
        webWebGL2: {
          supported: true,
          version: "2.39.0+"
        },
        reactCanvas: {
          supported: true,
          version: "4.30.0+"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.30.0+"
        },
        reactWebGL: {
          supported: false,
          description: "Not supported"
        },
        reactWebGL2: {
          supported: true,
          version: "4.30.0+"
        },
        reactNative: {
          supported: true,
          version: "0.5.0+",
          description: "iOS only"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Not supported"
        },
        flutter: {
          supported: true,
          version: "0.15.0"
        },
        apple: {
          supported: true,
          version: "6.21.0"
        },
        android: {
          supported: true,
          version: "11.10.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: false,
          description: "Not yet supported"
        },
        unreal: {
          supported: false,
          description: "Not yet supported"
        }
      }
    },
    scripting: {
      title: "Scripting",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.34.0+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: true,
          version: "2.34.0+"
        },
        webWebGL2: {
          supported: true,
          version: "2.34.0+"
        },
        reactCanvas: {
          supported: true,
          version: "4.26.0+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: true,
          version: "4.26.0+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.26.0+"
        },
        reactNative: {
          supported: true,
          version: "0.1.5+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "9.8.0+"
        },
        flutter: {
          supported: true,
          version: "0.14.1"
        },
        apple: {
          supported: true,
          version: "6.13.0+"
        },
        android: {
          supported: true,
          version: "11.1.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.4.1-canary.33+"
        },
        unreal: {
          supported: true,
          version: "0.4.20+"
        }
      }
    },
    dataBindingListsImagesArtboards: {
      title: "Data Binding - Lists, Images, and Artboards",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.30.3+"
        },
        webCanvasLite: {
          supported: true,
          version: "2.30.3+"
        },
        webWebGL: {
          supported: true,
          version: "2.30.3+"
        },
        webWebGL2: {
          supported: true,
          version: "2.30.3+"
        },
        reactCanvas: {
          supported: true,
          version: "4.22.0+"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.22.0+"
        },
        reactWebGL: {
          supported: true,
          version: "4.22.0+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.22.0+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Not supported"
        },
        flutter: {
          supported: true,
          version: "0.14.0-dev.1"
        },
        apple: {
          supported: true,
          version: "6.11.0+"
        },
        android: {
          supported: true,
          version: "10.4.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.3.7-canary.142"
        },
        unreal: {
          supported: true,
          description: "Supported"
        }
      }
    },
    rightToLeftLayoutsText: {
      title: "Right to Left Layouts & Text",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.26.7+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: true,
          version: "2.26.7+"
        },
        webWebGL2: {
          supported: true,
          version: "2.26.7+"
        },
        reactCanvas: {
          supported: true,
          version: "4.18.6+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: true,
          version: "4.18.6+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.18.6+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "9.2.1+"
        },
        flutter: {
          supported: true,
          version: "0.14.0-dev.1"
        },
        apple: {
          supported: true,
          version: "6.7.4+"
        },
        android: {
          supported: true,
          version: "10.0.4"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.3.5+"
        },
        unreal: {
          supported: true,
          version: "0.3.0a-gh"
        }
      }
    },
    textFollowPath: {
      title: "Text Follow Path",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.26.7+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: true,
          version: "2.26.7+"
        },
        webWebGL2: {
          supported: true,
          version: "2.26.7+"
        },
        reactCanvas: {
          supported: true,
          version: "4.18.6+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: true,
          version: "4.18.6+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.18.6+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "9.2.1+"
        },
        flutter: {
          supported: true,
          version: "0.14.0-dev.1"
        },
        apple: {
          supported: true,
          version: "6.7.4+"
        },
        android: {
          supported: true,
          version: "10.0.4"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.3.5+"
        },
        unreal: {
          supported: true,
          version: "0.3.0a-gh"
        }
      }
    },
    dataBinding: {
      title: "Data Binding",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.26.6+"
        },
        webCanvasLite: {
          supported: true,
          version: "2.26.6+"
        },
        webWebGL: {
          supported: true,
          version: "2.26.6+"
        },
        webWebGL2: {
          supported: true,
          version: "2.26.6+"
        },
        reactCanvas: {
          supported: true,
          version: "4.20.0+"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.20.0+"
        },
        reactWebGL: {
          supported: true,
          version: "4.20.0+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.20.0+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "9.3.0+"
        },
        flutter: {
          supported: true,
          version: "0.14.0-dev.1"
        },
        apple: {
          supported: true,
          version: "6.8.0+"
        },
        android: {
          supported: true,
          version: "10.1.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.3.6-canary.27"
        },
        unreal: {
          supported: true,
          version: "0.3.0a-gh"
        }
      }
    },
    vectorFeathering: {
      title: "Vector Feathering",
      runtimes: {
        webWebGL2: {
          supported: true,
          version: "2.26.0+"
        },
        webCanvas: {
          supported: false,
          na: true
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: false,
          description: "Not supported"
        },
        reactWebGL2: {
          supported: true,
          version: "4.18.0+"
        },
        reactCanvas: {
          supported: false,
          na: true
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: false,
          description: "Not supported"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "9.0.0+"
        },
        flutter: {
          supported: true,
          version: "0.14.0-dev.1"
        },
        apple: {
          supported: true,
          version: "6.6.0+"
        },
        android: {
          supported: true,
          version: "10.0.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.3.3-canary.72+"
        },
        unreal: {
          supported: true,
          version: "0.3.0a-gh"
        }
      }
    },
    nSlicing: {
      title: "N-Slicing",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.23.11+"
        },
        webCanvasLite: {
          supported: true,
          version: "2.23.11+"
        },
        webWebGL: {
          supported: true,
          version: "2.23.11+"
        },
        webWebGL2: {
          supported: true,
          version: "2.23.11+"
        },
        reactCanvas: {
          supported: true,
          version: "4.16.7+"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.16.7+"
        },
        reactWebGL: {
          supported: true,
          version: "4.16.7+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.16.7+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "8.2.0+"
        },
        flutter: {
          supported: true,
          version: "0.14.0-dev.1"
        },
        apple: {
          supported: true,
          version: "6.4.0+"
        },
        android: {
          supported: true,
          version: "9.12.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.2.2-canary.22+"
        },
        unreal: {
          supported: true,
          version: "0.2.2+"
        }
      }
    },
    layouts: {
      title: "Layouts",
      runtimes: {
        webWebGL2: {
          supported: true,
          version: "2.23.3+"
        },
        webCanvas: {
          supported: true,
          version: "2.23.3+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: true,
          version: "2.23.3+"
        },
        reactCanvas: {
          supported: true,
          version: "4.16.0+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: true,
          version: "4.16.0+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.16.0+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "8.1.0+"
        },
        flutter: {
          supported: true,
          version: "0.14.0-dev.1"
        },
        apple: {
          supported: true,
          version: "6.3.0+"
        },
        android: {
          supported: true,
          version: "9.10.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          version: "0.2.1+"
        },
        unreal: {
          supported: true,
          version: "0.2.1+"
        }
      }
    },
    fallbackFonts: {
      title: "Fallback Fonts",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.37.1+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: false,
          description: "Not supported"
        },
        webWebGL2: {
          supported: true,
          version: "2.37.1+"
        },
        reactCanvas: {
          supported: true,
          version: "4.28.0+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: false,
          description: "Not supported"
        },
        reactWebGL2: {
          supported: true,
          version: "4.28.0+"
        },
        reactNative: {
          supported: true,
          version: "0.2.7+"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Not supported"
        },
        flutter: {
          supported: false,
          description: "Not yet supported"
        },
        apple: {
          supported: true,
          version: "6.1.0+"
        },
        android: {
          supported: true,
          version: "9.7.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: false,
          description: "Not supported"
        },
        unreal: {
          supported: false,
          description: "Not Supported"
        }
      }
    },
    nestedText: {
      title: "Nested Text (deprecated)",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.21.0+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: true,
          version: "2.21.0+"
        },
        webWebGL2: {
          supported: true,
          version: "2.11.0+"
        },
        reactCanvas: {
          supported: true,
          version: "4.14.0+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: true,
          version: "4.14.0+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.14.0+"
        },
        reactNative: {
          supported: false,
          description: "Supported in 0.1.4–0.4.x; removed in 0.5.0+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "5.8.2+"
        },
        flutter: {
          supported: true,
          version: "0.13.7+"
        },
        apple: {
          supported: true,
          version: "6.1.0+"
        },
        android: {
          supported: true,
          version: "9.8.0+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          description: "Supported"
        },
        unreal: {
          supported: true,
          version: "0.1.14+"
        }
      }
    },
    audio: {
      title: "Audio",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.15.6+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: true,
          version: "2.15.6+"
        },
        webWebGL2: {
          supported: true,
          version: "2.15.6+"
        },
        reactCanvas: {
          supported: true,
          version: "4.9.5+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: true,
          version: "4.9.5+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.9.5+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "7.0.3+"
        },
        flutter: {
          supported: true,
          version: "0.13.4+"
        },
        apple: {
          supported: true,
          version: "5.11.5+"
        },
        android: {
          supported: true,
          version: "9.3.5+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          description: "Supported"
        },
        unreal: {
          supported: true,
          description: "Supported"
        }
      }
    },
    outOfBandAssets: {
      title: "Out-of-band Assets",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.7.0+"
        },
        webCanvasLite: {
          supported: true,
          version: "2.7.0+"
        },
        webWebGL: {
          supported: true,
          version: "2.7.0+"
        },
        webWebGL2: {
          supported: true,
          version: "2.11.0+"
        },
        reactCanvas: {
          supported: true,
          version: "4.5.0+"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.5.0+"
        },
        reactWebGL: {
          supported: true,
          version: "4.5.0+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.5.0+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "8.4.0+"
        },
        flutter: {
          supported: true,
          version: "0.12.0+"
        },
        apple: {
          supported: true,
          version: "5.7.0+"
        },
        android: {
          supported: true,
          version: "8.6.1+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          description: "Supported"
        },
        unreal: {
          supported: false,
          description: "Not yet supported"
        }
      }
    },
    events: {
      title: "Events (deprecated)",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.4.3+"
        },
        webCanvasLite: {
          supported: true,
          version: "2.4.3+"
        },
        webWebGL: {
          supported: true,
          version: "2.4.3+"
        },
        webWebGL2: {
          supported: true,
          version: "2.11.0+"
        },
        reactCanvas: {
          supported: true,
          version: "4.3.3+"
        },
        reactCanvasLite: {
          supported: true,
          version: "4.3.3+"
        },
        reactWebGL: {
          supported: true,
          version: "4.3.3+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.3.3+"
        },
        reactNative: {
          supported: false,
          description: "Supported in 0.1.4–0.4.x; removed in 0.5.0+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "6.1.0+"
        },
        flutter: {
          supported: true,
          version: "0.11.17+"
        },
        apple: {
          supported: true,
          version: "5.3.1+"
        },
        android: {
          supported: false,
          description: "Deprecated and will be removed in future versions"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          description: "Supported"
        },
        unreal: {
          supported: true,
          description: "Supported"
        }
      }
    },
    text: {
      title: "Text",
      runtimes: {
        webCanvas: {
          supported: true,
          version: "2.1.3+"
        },
        webCanvasLite: {
          supported: false,
          na: true
        },
        webWebGL: {
          supported: true,
          version: "2.1.3+"
        },
        webWebGL2: {
          supported: true,
          version: "2.11.0+"
        },
        reactCanvas: {
          supported: true,
          version: "4.1.3+"
        },
        reactCanvasLite: {
          supported: false,
          na: true
        },
        reactWebGL: {
          supported: true,
          version: "4.1.3+"
        },
        reactWebGL2: {
          supported: true,
          version: "4.1.3+"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: true,
          version: "6.0.3+"
        },
        flutter: {
          supported: true,
          version: "0.11.14+"
        },
        apple: {
          supported: true,
          version: "5.1.5+"
        },
        android: {
          supported: true,
          version: "8.1.3+"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          description: "Supported"
        },
        unreal: {
          supported: true,
          description: "Supported"
        }
      }
    },
    cachingARiveFile: {
      title: "Caching a Rive File",
      runtimes: {
        webCanvas: {
          supported: true,
          description: "Supported"
        },
        webCanvasLite: {
          supported: true,
          description: "Supported"
        },
        webWebGL: {
          supported: true,
          description: "Supported"
        },
        webWebGL2: {
          supported: true,
          version: "2.11.0+"
        },
        reactCanvas: {
          supported: true,
          description: "Supported"
        },
        reactCanvasLite: {
          supported: true,
          description: "Supported"
        },
        reactWebGL: {
          supported: true,
          description: "Supported"
        },
        reactWebGL2: {
          supported: true,
          description: "Supported"
        },
        reactNative: {
          supported: true,
          version: "0.1.4+"
        },
        reactNativeLegacy: {
          supported: false,
          description: "Not supported"
        },
        flutter: {
          supported: true,
          description: "Supported"
        },
        apple: {
          supported: true,
          description: "Supported"
        },
        android: {
          supported: true,
          description: "Supported"
        },
        cpp: {
          supported: true,
          description: "Supported"
        },
        unity: {
          supported: true,
          description: "Supported"
        },
        unreal: {
          supported: false,
          description: "Not yet supported"
        }
      }
    }
  };
  const renderSupportCell = support => {
    if (!support) {
      return <td>Unknown</td>;
    }
    const {supported, version, na} = support;
    const description = na ? "NA" : support.description;
    if (version) {
      return <td data-numeric="true">
                    {supported && '✅ '}
                    <code>{version.endsWith('+') ? version : `${version}+`}</code>
                    {description && ` (${description})`}
                </td>;
    }
    return <td>
                {supported && '✅ '}
                {description}
            </td>;
  };
  if (runtime) {
    const runtimeKeys = Array.isArray(runtime) ? runtime : [runtime];
    const isMultiRuntime = runtimeKeys.length > 1;
    const accordionTitle = title || runtimeTitles[runtimeKeys[0]];
    const columnTitle = runtimeKey => runtimeTitles[runtimeKey].split(' - ').pop();
    return <Accordion title={accordionTitle} defaultOpen={defaultOpen}>
                 {children}
                <div data-table-wrapper="true" className="[--page-padding:20px] overflow-x-auto flex my-[1em] py-[1em] max-w-none [contain:inline-size]">
                    <div className="px-[var(--page-padding)] grow max-w-none table">
                        <table className="m-0 min-w-full w-full max-w-none [&_td]:min-w-[150px] [&_th]:text-left [&_td[data-numeric]]:tabular-nums">
                            <thead className="w-full">
                                <tr>
                                    <th className={isMultiRuntime ? undefined : "w-2/3"}>
                                        <strong>Feature</strong>
                                    </th>
                                    {runtimeKeys.map(runtimeKey => <th className={isMultiRuntime ? undefined : "w-1/3"}>
                                                <strong>{isMultiRuntime ? columnTitle(runtimeKey) : 'Version'}</strong>
                                            </th>)}
                                </tr>
                            </thead>
                            <tbody>

                                {featuresInOrder.map(featureKey => {
      const currentFeature = features[featureKey];
      return <tr>
                                                <td>{currentFeature.title}</td>
                                                {runtimeKeys.map(runtimeKey => renderSupportCell(currentFeature.runtimes[runtimeKey]))}
                                            </tr>;
    })}

                            </tbody>
                        </table>
                    </div>
                </div>
            </Accordion>;
  }
  const currentFeature = features[feature];
  const allSupported = Object.entries(currentFeature.runtimes).filter(([runtimeKey, runtimeSupport]) => !legacyRuntimes.includes(runtimeKey) && !runtimeSupport.na).every(([, runtimeSupport]) => runtimeSupport.supported === true);
  const statusEmoji = allSupported ? '✅' : '🟡';
  const titleWithEmoji = `${statusEmoji} ${currentFeature.title}`;
  return <Accordion title={titleWithEmoji} defaultOpen={defaultOpen}>
            {children}
            <div data-table-wrapper="true" className="[--page-padding:20px] overflow-x-auto flex my-[1em] py-[1em] max-w-none [contain:inline-size]">
                <div className="px-[var(--page-padding)] grow max-w-none table">
                    <table className="m-0 min-w-full w-full max-w-none [&_td]:min-w-[150px] [&_th]:text-left [&_td[data-numeric]]:tabular-nums">
                        <thead className="w-full">
                            <tr>
                                <th className="w-2/3">
                                    <strong>Runtime</strong>
                                </th>
                                <th className="w-1/3">
                                    <strong>Version</strong>
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                            {runtimesInOrder.map(runtimeKey => {
    return <tr>
                                            <td>{runtimeTitles[runtimeKey]}</td>
                                            {renderSupportCell(currentFeature.runtimes[runtimeKey])}
                                        </tr>;
  })}

                        </tbody>
                    </table>
                </div>
            </div>
        </Accordion>;
};

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](/docs/runtimes/choose-a-renderer/).

  Currently, the only feature that requires the Rive Renderer is **[Vector
  Feathering](https://rive.app/blog/introducing-vector-feathering?utm_source=docs\&utm_medium=content)**.
</Warning>

When a feature requires API changes, migration notes will be included below.

## Feature support by runtime

<FeatureSupportGroup runtime={["webWebGL2", "webCanvas", "webCanvasLite"]} title="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. Does not support vector feathering at this time.
  * **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](/docs/runtimes/web/canvas-vs-webgl) for the tradeoffs.
</FeatureSupportGroup>

<FeatureSupportGroup runtime={["reactWebGL2", "reactCanvas", "reactCanvasLite"]} title="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. Does not support vector feathering at this time.
  * **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](/docs/runtimes/web/canvas-vs-webgl) for the tradeoffs.
</FeatureSupportGroup>

<FeatureSupportGroup runtime="reactNative">
  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](/docs/runtimes/react-native/native-version-customization), GPU Canvas requires Rive iOS `6.25.0` or later and Rive Android `11.12.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](/docs/runtimes/react-native/data-binding) to listen for triggers and update text instead.
  </Note>
</FeatureSupportGroup>

<FeatureSupportGroup runtime="flutter" />

<FeatureSupportGroup runtime="apple" />

<FeatureSupportGroup runtime="android" />

<FeatureSupportGroup runtime="cpp" />

<FeatureSupportGroup runtime="unity" />

<FeatureSupportGroup runtime="unreal" />

## Runtime support by feature

A 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.
</Note>

<FeatureSupportGroup feature="gamepad" />

<FeatureSupportGroup feature="textInput" />

<FeatureSupportGroup feature="focus" />

<FeatureSupportGroup feature="statefulComponents" />

<FeatureSupportGroup feature="gpuCanvas">
  GPU Canvas enables 3D and shader content. See each runtime section for more details.
</FeatureSupportGroup>

<FeatureSupportGroup feature="globalViewModels">
  On Apple, this feature requires the Swift Concurrency API. See [Global View Models](/docs/runtimes/apple/data-binding#global-view-models).
</FeatureSupportGroup>

<FeatureSupportGroup feature="dataBindingFonts">
  On Apple, this feature requires the Swift Concurrency API. See [Data Binding](/docs/runtimes/apple/data-binding).
</FeatureSupportGroup>

<FeatureSupportGroup feature="semantics">
  Accessibility voice over support with [Semantics](/docs/editor/accessibility/semantics).
</FeatureSupportGroup>

<FeatureSupportGroup feature="scripting">
  Support for Rive files with [Scripting](/docs/scripting).
</FeatureSupportGroup>

<FeatureSupportGroup feature="dataBindingListsImagesArtboards">
  Data binding lists, images, and artboards were added after initial data binding support.

  See [Data Binding Overview](/docs/editor/data-binding/overview) and [Data Binding for Runtimes](/docs/runtimes/data-binding).
</FeatureSupportGroup>

<FeatureSupportGroup feature="rightToLeftLayoutsText" />

<FeatureSupportGroup feature="textFollowPath" />

<FeatureSupportGroup feature="dataBinding">
  See [Data Binding Overview](/docs/editor/data-binding/overview) and [Data Binding for Runtimes](/docs/runtimes/data-binding).
</FeatureSupportGroup>

<FeatureSupportGroup feature="vectorFeathering" />

<FeatureSupportGroup feature="nSlicing">
  See [N-Slicing](/docs/editor/layouts/n-slicing).
</FeatureSupportGroup>

<FeatureSupportGroup feature="layouts">
  Allows Rive to automatically update the artboard size as the underlying view/canvas/widget/texture size changes. See [Layouts](/docs/editor/layouts/layouts-overview).
</FeatureSupportGroup>

<FeatureSupportGroup feature="fallbackFonts">
  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](/docs/runtimes/text#fallback-fonts).
</FeatureSupportGroup>

<FeatureSupportGroup feature="audio">
  See [Rive Events](/docs/runtimes/rive-events) and [Audio Events](/docs/editor/events/audio-events).
</FeatureSupportGroup>

<FeatureSupportGroup feature="outOfBandAssets">
  See [Loading Assets](/docs/runtimes/loading-assets).
</FeatureSupportGroup>

<FeatureSupportGroup feature="text">
  See [Text](/docs/runtimes/text).
</FeatureSupportGroup>

<FeatureSupportGroup feature="cachingARiveFile" />

## Legacy

**Legacy runtimes**

<FeatureSupportGroup runtime="webWebGL">
  <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` if your Rive graphics do not require vector feathering.
  </Warning>
</FeatureSupportGroup>

<FeatureSupportGroup runtime="reactWebGL">
  <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` if your Rive graphics do not require vector feathering.
  </Warning>
</FeatureSupportGroup>

<FeatureSupportGroup runtime="reactNativeLegacy">
  <Warning>
    The `rive-react-native` runtime is deprecated. For better performance and the latest features, use `rive-nitro-react-native`.

    [Migration guide](/docs/runtimes/react-native/migration-guide#migrating-from-rive-react-native-to-@rive-app/react-native)
  </Warning>
</FeatureSupportGroup>

**Deprecated features**

<FeatureSupportGroup feature="events">
  <Warning>
    Listening to [Rive Events](/docs/runtimes/rive-events) at runtime is deprecated and will be removed in future versions.

    Use [Data Binding](/docs/runtimes/data-binding) to listen for triggers or changes to properties instead.
  </Warning>
</FeatureSupportGroup>

<FeatureSupportGroup feature="nestedText">
  <Warning>
    Setting text, including [nested text](/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](/docs/runtimes/data-binding) to update a string, which is bound to a text run.
  </Warning>
</FeatureSupportGroup>
