PageSourceSearch

https://remotestorage.io/rs.js/docs/

html remotestorage.io collected 2026-10-03 21:38:29 UTC 33,437 bytes, 25 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US" dir="ltr">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width,initial-scale=1">
6    <title>Documentation | remoteStorage.js</title>
7    <meta name="description" content="remoteStorage.js Guides & Reference">
8    <meta name="generator" content="VitePress v1.6.3">
9    <link rel="preload stylesheet" href="/assets/style.D0Ko_m8F.css" as="style">
10    <link rel="preload stylesheet" href="/vp-icons.css" as="style">
11    
12    
12<script type="module" src="/assets/app.8YaI-AOJ.js"></script>
12
13    <link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14    <link rel="modulepreload" href="/assets/chunks/theme.DK_kTJeb.js">
15    <link rel="modulepreload" href="/assets/chunks/framework.Ds6Eueu6.js">
16    <link rel="modulepreload" href="/assets/rs.js_docs_index.md.DVFigzDZ.lean.js">
17    
17<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
17
18    
18<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
18
19  </head>
20  <body>
21    <div id="app"><div class="Layout" data-v-d8b57b2d><!--[--><!--]--><!--[--><span tabindex="-1" data-v-fcbfc0e0></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-fcbfc0e0>Skip to content</a><!--]--><!----><header class="VPNav" data-v-d8b57b2d data-v-7ad780c2><div class="VPNavBar" data-v-7ad780c2 data-v-9fd4d1dd><div class="wrapper" data-v-9fd4d1dd><div class="container" data-v-9fd4d1dd><div class="title" data-v-9fd4d1dd><div class="VPNavBarTitle has-sidebar" data-v-9fd4d1dd data-v-9f43907a><a class="title" href="/" data-v-9f43907a><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo.svg" alt data-v-ab19afbb><!--]--><span data-v-9f43907a>remoteStorage</span><!--[--><!--]--></a></div></div><div class="content" data-v-9fd4d1dd><div class="content-body" data-v-9fd4d1dd><!--[--><!--]--><div class="VPNavBarSearch search" data-v-9fd4d1dd><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-9fd4d1dd data-v-afb2845e><span id="main-nav-aria-label" class="visually-hidden" data-v-afb2845e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/get.html" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Getting started</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/rs.js/docs.html" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>remoteStorage.js</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://community.remotestorage.io" target="_blank" rel="noreferrer" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Forums</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-9fd4d1dd data-v-3f90c1a5><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-3f90c1a5 data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-9fd4d1dd data-v-ef6192dc data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/remotestorage" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://kosmos.social/@remotestorage" aria-label="mastodon" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-mastodon"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-9fd4d1dd data-v-f953d92f data-v-bfe7971f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-bfe7971f><span class="vpi-more-horizontal icon" data-v-bfe7971f></span></button><div class="menu" data-v-bfe7971f><div class="VPMenu" data-v-bfe7971f data-v-20ed86d6><!----><!--[--><!--[--><!----><div class="group" data-v-f953d92f><div class="item appearance" data-v-f953d92f><p class="label" data-v-f953d92f>Appearance</p><div class="appearance-action" data-v-f953d92f><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-f953d92f data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div></div></div><div class="group" data-v-f953d92f><div class="item social-links" data-v-f953d92f><div class="VPSocialLinks social-links-list" data-v-f953d92f data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/remotestorage" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://kosmos.social/@remotestorage" aria-label="mastodon" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-mastodon"></span></a>
21<!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-9fd4d1dd data-v-6bee1efd><span class="container" data-v-6bee1efd><span class="top" data-v-6bee1efd></span><span class="middle" data-v-6bee1efd></span><span class="bottom" data-v-6bee1efd></span></span></button></div></div></div></div><div class="divider" data-v-9fd4d1dd><div class="divider-line" data-v-9fd4d1dd></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-d8b57b2d data-v-2488c25a><div class="container" data-v-2488c25a><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-2488c25a><span class="vpi-align-left menu-icon" data-v-2488c25a></span><span class="menu-text" data-v-2488c25a>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2488c25a data-v-6b867909><button data-v-6b867909>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-d8b57b2d data-v-42c4c606><div class="curtain" data-v-42c4c606></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-42c4c606><span class="visually-hidden" id="sidebar-aria-label" data-v-42c4c606> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-51288d80><div class="VPSidebarItem level-0 is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/" data-v-0009425e><!--[--><p class="text" data-v-0009425e>remoteStorage.js</p><!--]--></a><!----></div><!----></div></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0" data-v-51288d80 data-v-0009425e><div class="item" role="button" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><h2 class="text" data-v-0009425e>Guide</h2><!----></div><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/why.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Why use this?</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed is-link" data-v-0009425e data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/getting-started/" data-v-0009425e><!--[-->
21<h3 class="text" data-v-0009425e>Getting started</h3><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/getting-started/how-to-add.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Adding rs.js to an app</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/getting-started/initialize-and-configure.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Initialization & configuration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/getting-started/connect-widget.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Connecting a storage</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/getting-started/events.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Handling events</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/getting-started/read-and-write-data.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Reading and writing data</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/getting-started/loading-data.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Loading data on launch</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/getting-started/share-public-data.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Sharing data with others</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1 collapsible collapsed is-link" data-v-0009425e data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/data-modules/" data-v-0009425e><!--[-->
21<h3 class="text" data-v-0009425e>Data modules</h3><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/data-modules/defining-a-module.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Defining a module</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/data-modules/defining-data-types.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Defining data types</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/data-modules/publishing-and-finding-modules.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Publishing and finding modules</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/nodejs.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Usage with Node.js</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/cordova.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Usage in Cordova apps</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/typescript.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Usage with TypeScript</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/dropbox-and-google-drive.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Dropbox and Google Drive</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0" data-v-51288d80 data-v-0009425e><div class="item" role="button" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><h2 class="text" data-v-0009425e>JavaScript API</h2><!----></div><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/api/remotestorage/classes/RemoteStorage.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>RemoteStorage</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/api/baseclient/classes/BaseClient.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>BaseClient</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/api/access/classes/Access.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Access</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/api/caching/classe
21s/Caching.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Caching</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Contributing</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/building.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Building</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/testing.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Testing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/docs.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Documentation</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/github-flow.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>GitHub workflow</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/release-checklist.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Release checklist</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed is-link" data-v-0009425e data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/internals/" data-v-0009425e><!--[-->
21<h3 class="text" data-v-0009425e>Library internals</h3><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/internals/code-overview.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Code overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/internals/discovery-bootstrap.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Discovery bootstrap</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/internals/caching.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Caching</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/rs.js/docs/contributing/internals/cache-data-format.html" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Data format of the local cache</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-d8b57b2d data-v-9a6c75ad><div class="VPDoc has-sidebar has-aside" data-v-9a6c75ad data-v-e6f2a212><!--[--><!--]--><div class="container" data-v-e6f2a212><div class="aside" data-v-e6f2a212><div class="aside-curtain" data-v-e6f2a212></div><div class="aside-container" data-v-e6f2a212><div class="aside-content" data-v-e6f2a212><div class="VPDocAside" data-v-e6f2a212 data-v-cb998dce><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-cb998dce data-v-f610f197><div class="content" data-v-f610f197><div class="outline-marker" data-v-f610f197></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-f610f197>On this page</div><ul class="VPDocOutlineItem root" data-v-f610f197 data-v-53c99d69><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-cb998dce></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-e6f2a212><div class="content-container" data-v-e6f2a212><!--[--><!--]--><main class="main" data-v-e6f2a212><div style="position:relative;" class="vp-doc _rs_js_docs_ external-link-icon-enabled" data-v-e6f2a212><div><img src="data:image/svg+xml,%3c?xml%20version=&#39;1.0&#39;%20encoding=&#39;UTF-8&#39;?%3e%3c!DOCTYPE%20svg%20PUBLIC%20&#39;-//W3C//DTD%20SVG%201.1//EN&#39;%20&#39;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&#39;%3e%3c!--%20Creator:%20CorelDRAW%20X7%20--%3e%3csvg%20xmlns=&#39;http://www.w3.org/2000/svg&#39;%20xml:space=&#39;preserve&#39;%20width=&#39;0.739008in&#39;%20height=&#39;0.853339in&#39;%20version=&#39;1.1&#39;%20style=&#39;shape-rendering:geometricPrecision;%20text-rendering:geometricPrecision;%20image-rendering:optimizeQuality;%20fill-rule:evenodd;%20clip-rule:evenodd&#39;%20viewBox=&#39;0%200%20739%20853&#39;%20xmlns:xlink=&#39;http://www.w3.org/1999/xlink&#39;%3e%3cdefs%3e%3cstyle%20type=&#39;text/css&#39;%3e%3c![CDATA[%20.fil0%20{fill:%23FF4B03}%20]]%3e%3c/style%3e%3c/defs%3e%3cg%20id=&#39;Layer_x0020_1&#39;%3e%3cmetadata%20id=&#39;CorelCorpID_0Corel-Layer&#39;/%3e%3cpolygon%20class=&#39;fil0&#39;%20points=&#39;370,754%200,542%200,640%20185,747%20370,853%20554,747%20739,640%20739,525%20739,525%20739,476%20739,427%20739,378%20653,427%20370,589%2086,427%2086,427%2086,361%20185,418%20370,524%20554,418%20653,361%20739,311%20739,213%20739,213%20554,107%20370,0%20185,107%2058,180%20144,230%20228,181%20370,100%20511,181%20652,263%20370,425%2087,263%2087,263%200,213%200,213%200,311%200,378%200,427%200,476%2086,525%20185,582%20370,689%20554,582%20653,525%20653,590%20653,592%20&#39;/%3e%3c/g%3e%3c/svg%3e" width="80" height="80" style="width:80px;height:80px;float:right;"><h1 id="remotestorage-js" tabindex="-1">remoteStorage.js <a class="header-anchor" href="#remotestorage-js" aria-label="Permalink to &quot;remoteStorage.js&quot;">​</a></h1><p>Welcome to the remoteStorage.js documentation!</p><p>remoteStorage.js is a JavaScript/TypeScript library for storing user data locally in the browser, as well as connecting to <a href="/">remoteStorage</a> servers and syncing data across devices and applications. It is also capable of connecting and syncing data with a person&#39;s Dropbox or Google Drive account (optional).</p><div class="note custom-block github-alert"><p class="custom-block-title">NOTE</p><p>For brevity&#39;s sake, we will also use the short name <strong>rs.js</strong> across these docs.</p></div><p>See <a href="./why.html">Why use this?</a> if you just learned about remoteStorage, or head to <a href="./getting-started/">Getting started</a> to jump right in.</p></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><div class="edit-info" data-v-1bcd8184><div class="edit-link" data-v-1bcd8184><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/remotestorage/remotestorage.js/edit/master/docs/index.md" target="_blank" rel="noreferrer" data-v-1bcd8184><!--[--><span class="vpi-square-pen edit-link-icon" data-v-1bcd8184></span> Edit this page<!--]--></a></div><!----></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1bcd8184><span class="visually-hidden" id="doc-footer-aria-label" data-v-1bcd8184>Pager</span><div class="pager" data-v-1bcd8184><!----></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/rs.js/docs/why.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Next page</span><span class="title" data-v-1bcd8184>Why use this?</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
22    
22<script>window.__VP_HASH_MAP__=JSON.parse("{\"apps.md\":\"DZx48GK9\",\"contribute.md\":\"BzhuTkjF\",\"design.md\":\"VWOVeUgQ\",\"get.md\":\"C2HcPjZP\",\"index.md\":\"DKr3vq4J\",\"protocol.md\":\"Sdv0-2aZ\",\"readme.md\":\"eRFaBej7\",\"rs.js.index.md\":\"B5D2tWm9\",\"rs.js_docs_api_access_classes_access.md\":\"DIOGarPE\",\"rs.js_docs_api_access_index.md\":\"DdDgMjUy\",\"rs.js_docs_api_baseclient_classes_baseclient.md\":\"DruhOvs2\",\"rs.js_docs_api_baseclient_index.md\":\"Ba3BVMFG\",\"rs.js_docs_api_caching_classes_caching.md\":\"C6Lxw3vE\",\"rs.js_docs_api_caching_index.md\":\"BHfviZ7-\",\"rs.js_docs_api_eventhandling_index.md\":\"C6XWe-8T\",\"rs.js_docs_api_eventhandling_type-aliases_eventhandler.md\":\"CUgRVrST\",\"rs.js_docs_api_modules.md\":\"D9eq2WvY\",\"rs.js_docs_api_remote_classes_remotebase.md\":\"DmE6CaZ-\",\"rs.js_docs_api_remote_index.md\":\"BStquoRW\",\"rs.js_docs_api_remote_interfaces_remote.md\":\"DqwpA4EA\",\"rs.js_docs_api_remotestorage_classes_remotestorage.md\":\"ByE8Jrko\",\"rs.js_docs_api_remotestorage_index.md\":\"j5Yew2m-\",\"rs.js_docs_api_remotestorage_interfaces_rsmodule.md\":\"DvUkDjyl\",\"rs.js_docs_contributing_building.md\":\"BDA4qHWp\",\"rs.js_docs_contributing_docs.md\":\"DW80CAAo\",\"rs.js_docs_contributing_github-flow.md\":\"BD_6vvpr\",\"rs.js_docs_contributing_index.md\":\"C_-dUg5M\",\"rs.js_docs_contributing_internals_cache-data-format.md\":\"Lz-K0xh1\",\"rs.js_docs_contributing_internals_caching.md\":\"BQpjGa2g\",\"rs.js_docs_contributing_internals_code-overview.md\":\"CPDkBeJZ\",\"rs.js_docs_contributing_internals_discovery-bootstrap.md\":\"LoAtMYUx\",\"rs.js_docs_contributing_internals_index.md\":\"EG-9a3da\",\"rs.js_docs_contributing_release-checklist.md\":\"BN5_L72I\",\"rs.js_docs_contributing_testing.md\":\"BbuWy9rv\",\"rs.js_docs_cordova.md\":\"B1ej1QDb\",\"rs.js_docs_data-modules_defining-a-module.md\":\"DRSq7iTn\",\"rs.js_docs_data-modules_defining-data-types.md\":\"CTHbPcjB\",\"rs.js_docs_data-modules_index.md\":\"DAROcoJH\",\"rs.js_docs_data-modules_publishing-and-finding-modules.md\":\"CTYzbOtp\",\"rs.js_docs_dropbox-and-google-drive.md\":\"DqXGOam7\",\"rs.js_docs_getting-started_connect-widget.md\":\"DQVTsWsj\",\"rs.js_docs_getting-started_events.md\":\"BbUOdevR\",\"rs.js_docs_getting-started_how-to-add.md\":\"DawhzfCc\",\"rs.js_docs_getting-started_index.md\":\"CwTQbKAe\",\"rs.js_docs_getting-started_initialize-and-configure.md\":\"B3TIhswO\",\"rs.js_docs_getting-started_loading-data.md\":\"C9qgS3G8\",\"rs.js_docs_getting-started_read-and-write-data.md\":\"D4aFuBqy\",\"rs.js_docs_getting-started_share-public-data.md\":\"DMksQ03F\",\"rs.js_docs_index.md\":\"DVFigzDZ\",\"rs.js_docs_nodejs.md\":\"hxizTXMf\",\"rs.js_docs_typescript.md\":\"DIQ8N-B3\",\"rs.js_docs_why.md\":\"kYiKjnOQ\",\"servers.md\":\"Ba4lvqDl\",\"unhosted.md\":\"7RF7PEyi\"}");function deserializeFunctions(r){return Array.isArray(r)?r.map(deserializeFunctions):typeof r=="object"&&r!==null?Object.keys(r).reduce((t,n)=>(t[n]=deserializeFunctions(r[n]),t),{}):typeof r=="string"&&r.startsWith("_vp-fn_")?new Function(`return ${r.slice(7)}`)():r};window.__VP_SITE_DATA__=deserializeFunctions(JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"remoteStorage\",\"description\":\"An open protocol for per-user storage on the Web\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo.svg\",\"externalLinkIcon\":true,\"outline\":{\"level\":[2,3]},\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"Getting started\",\"link\":\"/get\"},{\"text\":\"remoteStorage.js\",\"link\":\"/rs.js/docs\"},{\"text\":\"Forums\",\"link\":\"https://community.remotestorage.io\"}],\"sidebar\":{\"/\":[{\"items\":[{\"text\":\"Getting started\",\"link\":\"/get\"},{\"text\":\"How it works\",\"items\":[{\"text\":\"Unhosted Web Apps\",\"link\":\"/unhosted\"},{\"text\":\"Protocol\",\"link\":\"/protocol\"}]},{\"text\":\"Apps\",\"link\":\"/apps\"},{\"text\":\"Servers\",\"link\":\"/servers\"},{\"text\":\"Contribute\",\"link\":\"/contribute\"},{\"text\":\"Design\",\"link\":\"/design\"}]}],\"/rs.js/\":[{\"text\":\"remoteStorage.js\",\"link\":\"/rs.js/docs/\",\"items\":[]},{\"text\":\"Guide\",\"items\":[{\"text\":\"Why use this?\",\"link\":\"/rs.js/docs/why\"},{\"text\":\"Getting started\",\"link\":\"/rs.js/docs/getting-started/\",\"collapsed\":true,\"items\":[{\"text\":\"Adding rs.js to an app\",\"link\":\"/rs.js/docs/getting-started/how-to-add\"},{\"text\":\"Initialization & configuration\",\"link\":\"/rs.js/docs/getting-started/initialize-and-configure\"},{\"text\":\"Connecting a storage\",\"link\":\"/rs.js/docs/getting-started/connect-widget\"},{\"text\":\"Handling events\",\"link\":\"/rs.js/docs/getting-started/events\"},{\"text\":\"Reading and writing data\",\"link\":\"/rs.js/docs/getting-started/read-and-write-data\"},{\"text\":\"Loading data on launch\",\"link\":\"/rs.js/docs/getting-started/loading-data\"},{\"text\":\"Sharing data with others\",\"link\":\"/rs.js/docs/getting-started/share-public-data\"}]},{\"text\":\"Data modules\",\"link\":\"/rs.js/docs/data-modules/\",\"collapsed\":true,\"items\":[{\"text\":\"Defining a module\",\"link\":\"/rs.js/docs/data-modules/defining-a-module\"},{\"text\":\"Defining data types\",\"link\":\"/rs.js/docs/data-modules/defining-data-types\"},{\"text\":\"Publishing and finding modules\",\"link\":\"/rs.js/docs/data-modules/publishing-and-finding-modules\"}]},{\"text\":\"Usage with Node.js\",\"link\":\"/rs.js/docs/nodejs\"},{\"text\":\"Usage in Cordova apps\",\"link\":\"/rs.js/docs/cordova\"},{\"text\":\"Usage with TypeScript\",\"link\":\"/rs.js/docs/typescript\"},{\"text\":\"Dropbox and Google Drive\",\"link\":\"/rs.js/docs/dropbox-and-google-drive\"}]},{\"text\":\"JavaScript API\",\"items\":[{\"text\":\"RemoteStorage\",\"link\":\"/rs.js/docs/api/remotestorage/classe
22s/RemoteStorage\"},{\"text\":\"BaseClient\",\"link\":\"/rs.js/docs/api/baseclient/classes/BaseClient\"},{\"text\":\"Access\",\"link\":\"/rs.js/docs/api/access/classes/Access\"},{\"text\":\"Caching\",\"link\":\"/rs.js/docs/api/caching/classes/Caching\"}]},{\"text\":\"Contributing\",\"link\":\"/rs.js/docs/contributing/\",\"collapsed\":true,\"items\":[{\"text\":\"Building\",\"link\":\"/rs.js/docs/contributing/building\"},{\"text\":\"Testing\",\"link\":\"/rs.js/docs/contributing/testing\"},{\"text\":\"Documentation\",\"link\":\"/rs.js/docs/contributing/docs\"},{\"text\":\"GitHub workflow\",\"link\":\"/rs.js/docs/contributing/github-flow\"},{\"text\":\"Release checklist\",\"link\":\"/rs.js/docs/contributing/release-checklist\"},{\"text\":\"Library internals\",\"link\":\"/rs.js/docs/contributing/internals/\",\"collapsed\":true,\"items\":[{\"text\":\"Code overview\",\"link\":\"/rs.js/docs/contributing/internals/code-overview\"},{\"text\":\"Discovery bootstrap\",\"link\":\"/rs.js/docs/contributing/internals/discovery-bootstrap\"},{\"text\":\"Caching\",\"link\":\"/rs.js/docs/contributing/internals/caching\"},{\"text\":\"Data format of the local cache\",\"link\":\"/rs.js/docs/contributing/internals/cache-data-format\"}]}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/remotestorage\"},{\"icon\":\"mastodon\",\"link\":\"https://kosmos.social/@remotestorage\"}],\"editLink\":{\"pattern\":\"_vp-fn_({ filePath }) => {\\n        if (filePath.startsWith(\\\"rs.js/\\\")) {\\n          if (filePath.startsWith(\\\"rs.js/docs/api/\\\")) {\\n            return \\\"/rs.js/docs/contributing/docs\\\";\\n          } else {\\n            return `https://github.com/remotestorage/remotestorage.js/edit/master/${filePath.slice(6)}`;\\n          }\\n        } else {\\n          return `https://github.com/remotestorage/website/edit/master/${filePath}`;\\n        }\\n      }\"},\"search\":{\"provider\":\"local\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}"));</script>
22
23    
24  </body>
25</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.