| Storage Engine | Create Table | Insert | Select | Update | Delete | Total (ms) | Ops/sec |
|---|---|---|---|---|---|---|---|
| LibSQL (Memory) | - | - | - | - | - | - | - |
| LibSQL (File) | - | - | - | - | - | - | - |
| SQLite WASM | - | - | - | - | - | - | - |
| PGlite | - | - | - | - | - | - | - |
| DuckDB | - | - | - | - | - | - | - |
| SQL.js | - | - | - | - | - | - | - |
| AlaSQL | - | - | - | - | - | - | - |
| LokiJS | - | - | - | - | - | - | - |
| Dexie.js | - | - | - | - | - | - | - |
| RxDB | - | - | - | - | - | - | - |
| PouchDB | - | - | - | - | - | - | - |
| IndexedDB | - | - | - | - | - | - | - |
| LocalStorage | - | - | - | - | - | - | - |
| SessionStorage | - | - | - | - | - | - | - |
| WebSQL (Deprecated) | - | - | - | - | - | - | - |
The Embedded DB Registry benchmarks various embedded database solutions that run directly in web browsers. We measure performance across fundamental database operations to help developers choose the right storage solution for their applications.
Each test runs multiple iterations with configurable record counts to ensure consistent and reliable results. We measure execution time in milliseconds and calculate operations per second for comparative analysis. Tests are performed sequentially to avoid interference and ensure fair comparison across all database engines.
We benchmark SQL databases (LibSQL, SQLite WASM, PGlite, DuckDB), JavaScript databases (LokiJS, Dexie, RxDB), and native browser APIs (IndexedDB, LocalStorage, SessionStorage) to provide comprehensive coverage of available options.
Note: Performance results may vary based on browser, device capabilities, and data complexity. These benchmarks provide relative performance indicators under controlled conditions.