React Native GPUI:Rust × GPUIで実現するデスクトップ向けReact Nativeプラットフォーム

Library

概要

React Native GPUIは、React Nativeをデスクトップ向けに拡張するためのアウトオブツリープラットフォームです。プロジェクトはJavaScriptのReact Nativeランタイムと、GPUI(GPU-first UI)と会話するRust/C++ホストを組み合わせ、高速なGPUレンダリングを実現します。開発者は既存のReact Nativeのワークフローを保ちながら、@rngpui/プレフィックスの公開パッケージ群(例:@rngpui/app, @rngpui/window, @rngpui/gradient, @rngpui/blur, @rngpui/lists)を利用してウィンドウ管理やビジュアルエフェクトを扱えます。セットアップはpnpmで行い、マルチパッケージ構成を想定したブートストラップ手順があります。GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 3
  • ファイル数: 33
  • メインの言語: Rust

主な特徴

  • React NativeのランタイムをGPUファーストなGPUIスタック上で動作させるアウトオブツリープラットフォーム
  • Rust/C++ホストを介した高性能レンダリングと低レイテンシ描画
  • @rngpui/名前空間で提供される再利用可能なJSパッケージ(ウィンドウ、グラデーション、ブラー、リスト等)
  • pnpmを用いたモノレポ的なセットアップとブートストラップ手順

技術的なポイント

本プロジェクトの核は「React NativeのJSランタイム」と「GPUIを話すネイティブホスト」の結合にあります。GPUIはGPUを第一に考えたUIフレームワークで、CPU中心の描画パイプラインに比べてパフォーマンスやスムーズさで有利です。リポジトリはRustをメイン言語としており、.cargoが存在することからネイティブ部分の多くはRustで実装され、必要に応じてC++と連携してGPUIと通信している設計と読めます。Rustを採用することで安全性(メモリ安全)と高性能を両立でき、ネイティブ側でのレンダリング制御やスレッド管理、GPUリソース管理を効率的に行えます。

アウトオブツリープラットフォームという性質上、既存のReact Nativeリポジトリとは別にホスト実装を提供し、React NativeのブリッジやJSランタイム(Hermesなど)とネイティブホスト間の接続点を用意します。これにより、デスクトップ固有のウィンドウ管理やネイティブUIイベント、GPUリソースへのアクセスをネイティブ層で最適化できます。公開パッケージ群(@rngpui/app, @rngpui/windowなど)は、JS側からネイティブ機能を簡潔に使える抽象を提供することで、開発者がReact Nativeの開発フローを大きく変えずにデスクトップアプリを作れるように設計されています。

セットアップはpnpmベースで、pnpm install / pnpm bootstrapで依存解決とモノレポの初期化が行える点も特徴です。モジュール化された構成は、コンポーネント単位での再利用や独立したパッケージ更新を容易にします。総じて、このプロジェクトはGPU最適化レンダリングとモダンなネイティブ言語(Rust)によるホスト実装を組み合わせ、React Nativeのエコシステムをデスクトップへ橋渡しすることを狙っています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .cargo: dir
  • .changeset: dir
  • .clang-format: file
  • .claude: dir
  • .github: dir

…他 28 ファイル

まとめ

RustベースのネイティブホストとGPUIを組み合わせ、React Nativeをデスクトップ向けに高性能化する実験的で実用的なプラットフォームです。

リポジトリ情報:

READMEの抜粋:

React Native GPUI

React Native GPUI brings React Native surfaces to Zed’s GPU-first UI stack. It couples the React Native JavaScript runtime with a Rust/C++ host that speaks GPUI, providing high-performance rendering while keeping the familiar RN developer workflow.

Public JavaScript packages are published under @rngpui/ (for example @rngpui/app, @rngpui/window, @rngpui/gradient, @rngpui/blur, and @rngpui/lists).

Quick Start

pnpm install
pnpm bootstrap  # Hydrate nat...