10.6k GitHub stars and counting — Netflix/falcor is a JavaScript project TopGit is tracking across repositories on the platform. A JavaScript library for efficient data fetching
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
2.0 is the current stable Falcor release. 0.x and 1.x users are
welcome to upgrade.
Breaking changes between 1.x and 2.0.
Breaking changes between 0.x and 1.x.
Roadmap
Issues we're tracking as part of our roadmap are tagged with the
roadmap
label. They are split into
enhancement,
stability,
performance,
tooling,
infrastructure
and
documentation
categories, with near, medium and longer term labels to convey a broader sense
of the order in which we plan to approach them.
Getting Started
You can check out a working example server for Netflix-like application right now. Alternately, you
can go through this barebones tutorial in which we use the Falcor Router to
create a Virtual JSON resource. In this tutorial we will use Falcor's express
middleware to serve the Virtual JSON resource on an application server at the
URL /model.json. We will also host a static web page on the same server which
retrieves data from the Virtual JSON resource.
Creating a Virtual JSON Resource
In this example we will use the falcor Router to build a Virtual JSON resource
on an app server and host it at /model.json. The JSON resource will contain
the following contents:
{
"greeting": "Hello World"
}
Normally, Routers retrieve the data for their Virtual JSON resource from backend
datastores or other web services on-demand. However, in this simple tutorial, the
Router will simply return static data for a single key.
First we create a folder for our application server.
$ mkdir falcor-app-server
$ cd falcor-app-server
$ npm init
Now we install the falcor Router.
$ npm install falcor-router --save
Then install express and falcor-express. Support for restify is also available,
as is support for hapi via a third-party
implementation.
Now we create an index.js file with the following contents:
// index.js
const falcorExpress = require("falcor-express");
const Router = require("falcor-router");
const express = require("express");
const app = express();
app.use(
"/model.json",
falcorExpress.dataSourceRoute(function (req, res) {
// create a Virtual JSON resource with single key ('greeting')
return new Router([
{
// match a request for the key 'greeting'
route: "greeting",
// respond with a PathValue with the value of 'Hello World.'
get: () => ({ path: ["greeting"], value: "Hello World" }),
},
]);
})
);
// serve static files from current directory
app.use(express.static(__dirname + "/"));
app.listen(3000);
Now we run the server, which will listen on port 3000 for requests for
/model.json.
$ node index.js
Retrieving Data from the Virtual JSON resource
Now that we've built a simple virtual JSON document with a single read-only key
greeting, we will create a test web page and retrieve this key from the
server.
Create an index.html file with the following contents:
<!-- index.html -->
<html>
<head>
<!-- Do _not_ rely on this URL in production. Use only during development. -->
<script src="https://netflix.github.io/falcor/build/falcor.browser.js"></script>
<!-- For production use. -->
<!-- <script src="https://cdn.jsdelivr.net/falcor/{VERSION}/falcor.browser.min.js"></script> -->
<script>
var model = falcor({
source: new falcor.HttpDataSource("/model.json"),
});
// retrieve the "greeting" key from the root of the Virtual JSON resource
model.get("greeting").then(function (response) {
document.write(response.json.greeting);
});
</script>
</head>
<body></body>
</html>
Now visit http://localhost:3000/index.html and you should see the message
retrieved from the server:
Hello World
Steps to publish new version
Make pull request with feature/bug fix and tests
Merge pull request into master after code review and passing Travis CI checks
Run git checkout master to open master branch locally
Run git pull to merge latest code, including built dist/ and docs/ by Travis
Run npm run dist to build dist/ locally
Ensure the built files are not different from those built by Travis CI, hence creating no change to commit
Update CHANGELOG with features/bug fixes to be released in the new version and commit
Run npm version patch (or minor, major, etc) to create a new git commit and tag
Run git push origin master && git push --tags to push code and tags to github
Run npm publish to publish the latest version to NPM
Additional Resources
For detailed high-level documentation explaining the Model, the Router, and JSON
Graph check out the Falcor website.
API documentation
For a working example of a Router, check out the
falcor-router-demo.
The most recent commit recorded on Netflix/falcor was 1.1 years ago, based on the GitHub push timestamp. The repository has 443 forks — one of the better signals of community interest.
How many stars does Netflix/falcor have?
Netflix/falcor has 10.6k GitHub stars — refresh the page for the live number, or check github.com/Netflix/falcor. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is Netflix/falcor open source?
Yes — Netflix/falcor ships under the Apache-2.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/Netflix/falcor.
What is Netflix/falcor?
Netflix/falcor (Netflix/falcor) is a JavaScript project on GitHub. From the project's own README: A JavaScript library for efficient data fetching
Where do I read more about Netflix/falcor?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/Netflix/falcor is the definitive source.
Read full README in the tab above.
Curious whether falcor is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about falcor.