OSS探訪GitHubでログイン

GraphQL queryをReact componentへcolocateしcompiler/runtimeでdata fetching・cache・mutationを管理するframework

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
18,965
主要言語
Rust
ライセンス
MIT
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

RelayはReact componentの近くにGraphQL data requirementを宣言し、compilerがquery artifactを生成、runtimeがnetwork request・normalized store・cache・mutation・optimistic updateを管理するdata frameworkです。UIとdata dependencyをcolocateしつつ、application全体のfetch/cache policyを統一できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

GraphQL fragment/queryをviewの近くへcolocateする

componentが必要とするfieldをGraphQLとして宣言し、Relay compilerがそれらを検証・変換してruntime artifactへ生成します。

出典:[1]

runtimeがnormalized store・fetch policy・mutationを管理する

Relay runtimeはnetwork、record store、query execution、mutation、subscription、optimistic update等を提供し、server responseをnormalized cacheへ統合します。

出典:[4][1]

React hooksでquery・fragment・mutationをcomponentへ接続する

react-relayはuseLazyLoadQuery、useFragment、useMutation、RelayEnvironmentProvider等を公開し、generated artifactとruntime environmentをReact treeへ接続します。

出典:[3]

向いている用途

大規模React applicationでGraphQL data dependencyとcache policyを一貫管理したい場合に向く

viewごとのdata requirementをcolocateしつつ、network request aggregation、normalized cache、mutation consistencyをframeworkへ任せたいproductに適します。

出典:[1]

導入前の確認

react-relay 21.0.1はReact 16.9〜19をpeer rangeに持つ

package metadataはReact ^16.9.0 || ^17 || ^18 || ^19をpeer dependencyとして定義し、relay-runtime 21.0.1へ依存します。

出典:[2]

21.0.1はpublished npm bundleへのTypeScript定義欠落を修正する

21.0.0で新しいTypeScript definition fileがnpm bundleに含まれない問題があり、21.0.1で修正されています。TypeScript利用時は21.0.1以降を優先できます。

出典:[5]

参考にした公式資料

  1. [1]Relay v21.0.1 README(2026-10-05)
  2. [2]react-relay 21.0.1 package metadata(2026-10-05)
  3. [3]react-relay 21.0.1 public exports(2026-10-05)
  4. [4]relay-runtime 21.0.1 public exports(2026-10-05)
  5. [5]Relay v21.0.1 release(2026-10-05)
  6. [6]Relay MIT license(2026-10-05)
編集部からの補足

RelayはGraphQL schemaとcompiler生成artifactを前提にするため、単純なfetch wrapperより導入構成が重いframeworkです。schema/build pipelineまで含めて評価してください。

3ステップで試す

  1. 1

    Relay 21.0.1を固定して導入する

    一時npm projectへReact bindingとruntimeを同一versionで固定して導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/relay.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact react-relay@21.0.1 relay-runtime@21.0.1 react@19.2.0
  2. 2

    package versionを確認する

    react-relayとrelay-runtimeが同じreview対象versionであることを確認します。

    test "$(node -e "console.log(require('react-relay/package.json').version+'/'+require('relay-runtime/package.json').version)")" = '21.0.1/21.0.1'
  3. 3

    主要React hook/runtime APIを確認する

    GraphQL serverへ接続せず、React hookとnormalized runtimeの主要API exportを確認します。

    test "$(node -e "const R=require('react-relay'); const RT=require('relay-runtime'); console.log(['useLazyLoadQuery','useFragment','useMutation','RelayEnvironmentProvider'].every(k=>k in R)&&['Environment','Network','RecordSource','Store'].every(k=>k in RT))")" = 'true'
公式READMEで確認

成長

成長の推移 · 直近30日

18,965 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
116
Open PR
227

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
18,965
Forks
1,892
Watchers
326
Open Issues
638
Contributors
294
所有者種別
Organization
主要言語
Rust
ライセンス
MIT
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?