-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.html
19 lines (19 loc) · 11.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!doctype html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.14">
<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Orbit.js RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Orbit.js Atom Feed">
<link rel="alternate" type="application/json" href="/blog/feed.json" title="Orbit.js JSON Feed"><title data-react-helmet="true">Orbit.js - The Universal Data Layer | Orbit.js</title><meta data-react-helmet="true" property="og:title" content="Orbit.js - The Universal Data Layer | Orbit.js"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="description" content="A framework for orchestrating access, transformation, and synchronization between data sources."><meta data-react-helmet="true" property="og:description" content="A framework for orchestrating access, transformation, and synchronization between data sources."><meta data-react-helmet="true" property="og:url" content="https://orbitjs.com/"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_tag" content="default"><link data-react-helmet="true" rel="icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://orbitjs.com/"><link data-react-helmet="true" rel="alternate" href="https://orbitjs.com/" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://orbitjs.com/" hreflang="x-default"><script data-react-helmet="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span> (default value)</p>\n <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/assets/css/styles.74aa2cd0.css">
<link rel="preload" href="/assets/js/runtime~main.b1b77a52.js" as="script">
<link rel="preload" href="/assets/js/main.8aa9b469.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div id="docusaurus-base-url-issue-banner-container"></div><div><a href="#" class="skipToContent_1oUP">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/orbitjs-text.svg" alt="Orbit.js" class="themedImage_1VuW themedImage--light_3UqQ"><img src="/img/orbitjs-text.svg" alt="Orbit.js" class="themedImage_1VuW themedImage--dark_hz6m"></div></a><a class="navbar__item navbar__link" href="/docs/intro">Docs</a><a class="navbar__item navbar__link" href="/docs/api">API</a><a class="navbar__item navbar__link" href="/blog">Blog</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" href="/docs/intro">0.17</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/intro">0.17</a></li><li><a class="dropdown__link" href="/docs/0.16/intro">0.16</a></li><li><a class="dropdown__link" href="/docs/0.15/intro">0.15</a></li><li><a class="dropdown__link" href="/versions">All versions</a></li></ul></div><a href="https://github.com/orbitjs/orbit" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link"></a><div class="toggle_71bT toggle_3Zt9 toggleDisabled_3cF-"><div class="toggleTrack_32Fl" role="button" tabindex="-1"><div class="toggleTrackCheck_3lV7"><span class="toggleIcon_O4iE">🌜</span></div><div class="toggleTrackX_S2yS"><span class="toggleIcon_O4iE">🌞</span></div><div class="toggleTrackThumb_xI_Z"></div></div><input type="checkbox" class="toggleScreenReader_28Tw" aria-label="Switch between dark and light mode"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper"><header class="hero hero--primary heroBanner_1ZBZ"><div class="container"><h1 class="hero__title"><img class="heroLogo_17HU" src="/img/logo.png" alt="Orbit.js"></h1><h2 class="heroTagline_17g8">The Universal Data Layer</h2><div class="buttons_irzW"><a class="button button--secondary button--lg" href="/docs/intro">GET STARTED</a></div></div></header><main><section class="features_pzNA"><div class="container"><div class="row"><div class="col col--4"><div class="featureImgContainer_YBZW"><img src="/img/tour/normalized-data.png" alt="Multiple Data Sources"></div><div class="text--center padding-horiz--md"><h3>Multiple Data Sources</h3><section><p>Your application may need to interact with data from a variety of sources: a REST server, a WebSocket stream, an IndexedDB backup, an in-memory source, etc.</p><p>Orbit can coordinate data flows across any number of sources through a standard set of interfaces using normalized data structures.</p></section></div></div><div class="col col--4"><div class="featureImgContainer_YBZW"><img src="/img/tour/uniform-access.png" alt="Uniform Data Access"></div><div class="text--center padding-horiz--md"><h3>Uniform Data Access</h3><section><p>Because Orbit's sources all understand the same expressions for querying and mutating data, you can access data in the same way regardless of its origin.</p><p>Orbit also provides an extensible set of serializers to "normalize" external data as well as validators to ensure its correctness.</p></section></div></div><div class="col col--4"><div class="featureImgContainer_YBZW"><img src="/img/tour/change-tracking.png" alt="Deterministic Change Tracking"></div><div class="text--center padding-horiz--md"><h3>Deterministic Change Tracking</h3><section><p>Data correctness is vital to user trust, so you need a deterministic approach to manage it.</p><p>Orbit uses a Git-like approach to track changes across data sources. Changes are expressed as "transforms", which are similar to Git commits. Logs provide a per-source history. Like Git repos, sources can be diffed, forked, merged, and reset.</p></section></div></div><div class="col col--4"><div class="featureImgContainer_YBZW"><img src="/img/tour/connections.png" alt="Optimistic / Pessimistic Requests"></div><div class="text--center padding-horiz--md"><h3>Optimistic / Pessimistic Requests</h3><section><p>Not all data can be treated uniformly. Some data is transient, while other data can persist for the life of your app. Some changes should be made pessimistically and be confirmed by a remote server. Other changes can be made optimistically, cached locally, and pushed eventually.</p><p>Orbit provides coordination strategies which can be customized to the needs of your application.</p></section></div></div><div class="col col--4"><div class="featureImgContainer_YBZW"><img src="/img/tour/failasaur.svg" alt="Offline Support"></div><div class="text--center padding-horiz--md"><h3>Offline Support</h3><section><p>In an increasingly mobile world, it's ideal to keep applications available even when the Internet is not.</p><p>Orbit provides the tools needed to build robust offline experiences. Backup your application's state, including data caches, logs, and queues, to browser storage. Query and change local data when offline, while queueing changes for synchronization when online again.</p></section></div></div><div class="col col--4"><div class="featureImgContainer_YBZW"><img src="/img/tour/browsers-and-node.png" alt="Runs Everywhere"></div><div class="text--center padding-horiz--md"><h3>Runs Everywhere</h3><section><p>Orbit can be run in modern browsers as well as in the Node.js runtime.</p><p>Orbit is written in TypeScript. Its libraries are distributed on npm through the @orbit organization in both CJS and ESM formats.</p></section></div></div></div></div></section></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/docs/intro">Tutorial</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items"><li class="footer__item"><a href="https://gitter.im/orbitjs/orbit.js" target="_blank" rel="noopener noreferrer" class="footer__link-item"><span>Gitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_3J9K"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li class="footer__item"><a href="https://twitter.com/orbitjs" target="_blank" rel="noopener noreferrer" class="footer__link-item"><span>Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_3J9K"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li class="footer__item"><a href="https://stackoverflow.com/questions/tagged/orbit.js" target="_blank" rel="noopener noreferrer" class="footer__link-item"><span>Stack Overflow<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_3J9K"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a href="https://github.com/orbitjs/orbit" target="_blank" rel="noopener noreferrer" class="footer__link-item"><span>GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_3J9K"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2014-2022 Cerebris Corporation.</div></div></div></footer></div>
<script src="/assets/js/runtime~main.b1b77a52.js"></script>
<script src="/assets/js/main.8aa9b469.js"></script>
</body>
</html>