My experiments with IndexedDB

IndexedDB is a client side storage mechanism for storing large amounts of data with support for transactions and indexing. This github project is a list of my experiments with the IndexedDB implementation in various browsers. I have also blogged about my experiments.

See IndexedDB Playground »

The IndexedDB specification and its implementation in various browsers have been changing, and you can see the archived versions of the examples in the API playground here »

IndexedDB Polyfill

The API is not supported all browsers . However, unsupported browser do implement WebSQL, another (deprecated) standard for client side storage. The IndexedDB Polyfill is an implementation of the IndexedDB API on top of the WebSQL API in Javascript. Using the polyfill, you can write IndexedDB code and run them on unsupported browsers and even on mobile devices. Try running the tests on an unsupported browser.

View Project »


The IndexedDB API seems verbose and I wanted to make it simpler to use. Here is an implementation of the API as a jquery plugin that makes using the API simpler. It uses the jquery friendly patterns like promises, method chaining, etc, to make the API easier to use. You can also look at the API documentation or an example app . The plugin also has tests that you can run to see if it works for you.

View Project »

Performance Tests

The Performance experiments try to identify the fastest way to perform a set of operations, in various combinations. The performance experiments test some of the most common patterns when IndexedDB is used.

Performance Results »

Other libraries

I have also been helping other libraries that use IndexedDB libraries. Here are some of them