Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Storehouse is a persistent data store for the Dojo Toolkit implementing the dojo/store API.

It's built upon dojo/store/Memory, so you have all the API you have with the Memory store, just that the data gets persisted client-side.

Behind the covers, it uses IndexedDB as storage engine and falls back to localStorage if IndexedDB is not available – if that fails, too, it uses cookies as a last resort to store the data.

#How it works

Storehouse keeps a copy of the stored data in memory, allowing for fast, synchronous read access and queries.

Only write operations are asynchronous (as the underlying engine might work asynchronously itself), and return Promises to make working with it as easy as possible. For more information on Promises, please refer to the Dojo documentation.

#Getting Storehouse

Clone or download this repository and require 'Storehouse' in your application (for an example, please refer to the examples section). Other ways to obtain Storehouse will follow.

You might need to tell the Dojo loader where the Storehouse modules are; this is done via the dojoConfig config object. Please refer to the code in the examples to see some examples of this.


Storehouse has the same API as the Memory Store has, with some differences, as Storehouse uses storage backends that operate async, and it needs to take this into account.

For usage details and a method overview, please refer to the Usage Doc.


Examples are in the example folder. You can try them out directly in your browser over here.


Tests are in the test directory. They require a D.O.H. runner.


Storehouse requires Dojo 1.8+

Reporting Issues

Bugs or enhancements can be filed by opening an issue in the issue tracker on GitHub.

When reporting a bug, please provide the following information:

  • Affected browsers and Dojo versions
  • A clear list of steps to reproduce the problem
  • If the problem cannot be easily reproduced in an existing Storehouse test page, include a Gist with code for a page containing a reduced test case

If you would like to suggest a fix for a particular issue, you are welcome to fork Storehouse, create a branch, and submit a pull request. Please note that a Dojo CLA is required for any non-trivial modifications.


Storehouse is available under the terms of the modified BSD license or the Academic Free License version 2.1. For details, see the LICENSE file.


A persistent data store implementing the dojo/store API







No packages published