facebook/relay

Relay is a JavaScript framework for building data-driven React applications.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 34 minutes ago
Added to GitGenius on April 8th, 2021
Created on August 10th, 2015
Open Issues & Pull Requests: 871 (+0)
Number of forks: 1,894
Total Stargazers: 18,955 (+0)
Total Subscribers: 319 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 8.2 days
Mean response time: 395.4 days
90th percentile: 1340.7 days
Tracked items: 218

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 99% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 67% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 4% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 640
New in 7 days: 3
Closed in 7 days: 1
Avg open age: 1,498 days
Stale 30+ days: 636
Stale 90+ days: 623

Recent activity

Opened in 7 days: 2
Closed in 7 days: 1
Comments in 7 days: 1
Events in 7 days: 1

Top labels

  • wontfix (216)
  • bug (96)
  • shared with relay team (81)
  • help wanted (79)
  • enhancement (78)
  • question (44)
  • rust (33)
  • docs (32)

Detailed Description

Relay is a JavaScript framework developed by Facebook for building data-driven React applications. It provides a declarative approach to data fetching and state management by leveraging GraphQL, allowing developers to specify data requirements directly within their components rather than using imperative APIs. The framework is written primarily in Rust and is distributed as the react-relay package on npm under an MIT license.

The core philosophy of Relay centers on three main principles outlined in its documentation. First, it emphasizes declarative data fetching where developers declare their data requirements using GraphQL and let Relay handle the mechanics of fetching and timing. Second, it implements colocation by keeping queries adjacent to the views that depend on them, enabling developers to reason about data flow more easily. Third, it provides comprehensive mutation support through GraphQL mutations with automatic data consistency, optimistic updates, and error handling built in. The framework aggregates multiple queries into efficient network requests to minimize data transfer and improve application performance.

This cross-project involvement suggests that Relay's development benefits from expertise across multiple technology domains and maintains alignment with broader ecosystem developments.

The framework includes a relay compiler component that processes GraphQL queries and integrates with the React component lifecycle. The example implementation references the relay-examples repository, which contains a TodoMVC implementation demonstrating practical usage patterns. The project maintains a community-curated list of production users, indicating established adoption across various organizations and projects.

Relay's development acknowledges contributions from the broader ecosystem, particularly crediting the relay-hooks project for enabling community experimentation with Relay and React Hooks. The useSubscription hook feature originated from community feedback through the relay-hooks project, demonstrating how Relay incorporates external innovation into its core offering. The framework positions itself as actively welcoming pull requests and community contributions through documented contribution guidelines.