finds.dev← search

// the find

wcandillon/react-native-webgpu

★ 1,252 · TypeScript · MIT · updated Oct 2026

React Native WebGPU powered by Dawn

A React Native library that exposes the WebGPU API through Google's Dawn, built natively for iOS, macOS, and Android, so the same shader and render code can run in an Expo app and in the browser. It is aimed at React Native developers who want GPU compute or 3D rendering without writing their own native module.

- The API follows the browser WebGPU spec, so code written against the web can move to native with little change. The example app has web-specific entry points (index.web.js, MNISTInference.web.tsx), which shows the shared-code approach in practice.

- The integrations are working code, not just a list in the docs. The example app exercises react-native-skia, react-three-fiber, Reanimated worklets, VisionCamera frame processing, and TensorFlow. These are the integrations most likely to need custom glue, so seeing them run here counts for something.

- The example app covers compute as well as rendering: boids, particles, a ComputeToys port, render bundles, occlusion queries, and shared texture memory. That is a reasonable spread for checking that the bindings work across the API surface.

- The README is a pointer to a docs site and to CONTRIBUTING.md. It says nothing about which spec version is covered, which platforms are supported, or what stability to expect. You have to answer those questions yourself before adopting it.

- Dawn is pulled in as a submodule and built through its own workflow. If you need to touch the native layer, expect a long first build and a heavy toolchain before you write any app code.

- The Diagnostics folder holds reproductions named for failure modes: DeviceLostHang, RenderAfterUnmount, ViewFormatsUseAfterFree, SurfaceChurn, and BackgroundDetach. Writing those repros is the right move, but they also show that surface and device lifecycle, where GPU work collides with React unmounts and backgrounding, is where this library is most likely to bite. Test backgrounding, remounts, and device loss in your own app before you ship.

- The only test file visible in the tree is blurPlan.test.ts, which covers one example's planning logic. The tree is truncated, so there may be more, but nothing visible exercises the native binding.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →