So we killed Web SQL because everyone just used SQLite, and now everyone is
just using SQLite for IDB?

On Fri, Apr 24, 2026, 3:03 PM 'Evan Stade' via blink-dev <
[email protected]> wrote:

> *Contact emails*
> [email protected], [email protected],
> [email protected]
>
> *Specification*
> https://www.w3.org/TR/IndexedDB
>
> *Design docs*
>
>
> https://docs.google.com/document/d/1S9Rx67BmCZIP7tpasKaQ2FlV4TL1Z15DitR2kRZs9nw/edit?usp=sharing
>
> https://docs.google.com/document/d/1-N4NqdYjqaWEbfVPYnCg2Ho1u4YK48pUoQ_tSy9SUg8/edit?usp=sharing
>
> *Summary*
> Chromium's IndexedDB implementation is rewritten on top of SQLite, to
> replace the previous implementation that uses a hybrid of LevelDB and flat
> files. There is no change to the Web API.
>
> This is expected to improve reliability and, to a lesser extent,
> performance.
>
> For now this is applied to *new data stores*. This is step 2 of a
> multi-phase rollout. See the previous Chromestatus entry
> <https://chromestatus.com/feature/5126896685809664> which tracks step 1,
> the rollout for in-memory i.e. incognito contexts. Step 3 will consist of
> migrating existing data from LevelDB stores to SQLite stores.
>
> In this step, the first time a user visits a site, or after clearing site
> data, new IDB data will be stored in a backend that makes use of SQLite,
> but existing data stored in LevelDB is unimpacted. See Documentation link
> below for a list of differences to be aware of.
>
> *Blink component*
> Blink>Storage>IndexedDB
> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EStorage%3EIndexedDB%22>
>
> *Web Feature ID*
> indexeddb <https://webstatus.dev/features/indexeddb>
>
> *Risks*
>
>
> *Interoperability and Compatibility*
> Interop: this work entails a web-visible behavioral change concerning an
> edge case in IDB transaction scheduling. This change brings Chromium in
> line with Firefox and Safari. (Both new and old behavior are
> standards-compliant.) See demo
> <https://evanstade.github.io/web-storage-demos/idb-txn-scopes>.
>
> Compatibility: This PSA exists primarily to warn of the risk of unintended
> breakage. The performance characteristics, including reliability, runtime +
> CPU usage, memory usage, disk access, and storage utilization will all
> change, to varying extents based on exact details of site usage. This could
> become problematic in cases where sites are operating at the limits of
> device abilities (e.g. a kiosk app running on extremely storage-constrained
> hardware).
>
> *Gecko*: Shipped/Shipping Firefox uses SQLite for IndexedDB.
>
> *WebKit*: Shipped/Shipping Safari uses SQLite for IndexedDB.
>
> *Web developers*: No signals
>
> *Other signals*:
>
> *Activation*
> There are already many libraries wrapping IndexedDB, and its use is
> widespread. However, not all sites will be able to immediately take
> advantage of this feature, because there is not yet a mechanism to migrate
> data from the implementation that uses LevelDB to that which uses SQLite.
> Sites that are willing and able to clear user data (such as small local
> caches of server-stored data) can make use of the feature immediately.
>
> *Security*
> All data on disk is still segregated by storage bucket (origin). Both new
> and old implementation are newly fuzz-tested. More details:
> https://docs.google.com/document/d/1IjtPSWrDFw69LbsPsWY5rATO_jAxZF7bm8IndRBBNsU/edit?usp=sharing
>
> *Debuggability*
> existing IndexedDB DevTools support is unimpacted
>
> *Will this feature be supported on all six Blink platforms (Windows, Mac,
> Linux, ChromeOS, Android, and Android WebView)?*
> Yes
>
> *Is this feature fully tested by **web-platform-tests*
> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
> *?*
> Yes
> https://wpt.fyi/results/IndexedDB
>
> *DevTrial instructions*
>
> https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB
>
>
>
> *Tracking bug*
> https://issues.chromium.org/issues/498644996
>
> *Estimated milestones*
> Shipping on desktop
> 150
> DevTrial on desktop
> 148
> Shipping on Android
> 150
> DevTrial on Android
> 148
> Shipping on WebView
> 150
>
>
> *Link to entry on the Chrome Platform Status*
> https://chromestatus.com/feature/5161589557821440
>
> This intent message was generated by Chrome Platform Status
> <https://chromestatus.com/>.
>
> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CHAPR00MB303987F61B2589C048CFF2FFBA2B2%40CHAPR00MB3039.namprd00.prod.outlook.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CHAPR00MB303987F61B2589C048CFF2FFBA2B2%40CHAPR00MB3039.namprd00.prod.outlook.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJSLZa0W9jHQiBXfif6K9zr9BSn2Vxe%3DXMbcth%2BkDMpjH3S51w%40mail.gmail.com.

Reply via email to