# jlongster/absurd-sql

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jlongster-absurd-sql).**

4,326 stars · 106 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/jlongster/absurd-sql
- awesome-repositories: https://awesome-repositories.com/repository/jlongster-absurd-sql.md

## Description

Absurd-sql is a browser-based SQL database that runs SQLite for query processing and local storage. It provides a system for saving relational data locally in the browser to ensure persistence across page refreshes and restarts.

The project implements an IndexedDB persistence layer that stores SQLite database blocks within the browser. This approach avoids loading entire database images into memory, enabling the storage of structured relational data locally to maintain functionality during offline use.

## Tags

### Data & Databases

- [Client-Side Databases](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/client-side-databases.md) — Runs a full SQLite database inside the web browser for persistent, structured local data management.
- [Browser Databases](https://awesome-repositories.com/f/data-databases/browser-databases.md) — Provides a relational SQL database implementation that runs entirely within the web browser.
- [Client-Side Storage](https://awesome-repositories.com/f/data-databases/client-side-storage.md) — Saves SQL data locally in the browser to maintain persistence across user sessions.
- [IndexedDB Storage](https://awesome-repositories.com/f/data-databases/data-management/state-context-management/client-side-data-persistence/indexeddb-storage.md) — Uses IndexedDB as a block storage layer to map SQLite database pages to key-value pairs.
- [SQLite Persistence Layers](https://awesome-repositories.com/f/data-databases/data-management/state-context-management/client-side-data-persistence/indexeddb-storage/sqlite-persistence-layers.md) — Implements a specialized storage engine that persists SQLite database blocks within IndexedDB to optimize memory usage.
- [Local Databases](https://awesome-repositories.com/f/data-databases/local-databases.md) — Implements a persistent local database system that keeps data available after page refreshes. ([source](https://github.com/jlongster/absurd-sql/blob/master/package.json))
- [Local Database Persistence](https://awesome-repositories.com/f/data-databases/sqlite-drivers/sqlite-storage-adapters/local-database-persistence.md) — Ensures relational data persists across browser restarts by storing database blocks in local storage. ([source](https://github.com/jlongster/absurd-sql#readme))
- [Web Browser Integrations](https://awesome-repositories.com/f/data-databases/sqlite-integrations/web-browser-integrations.md) — Integrates SQLite as a relational engine within the browser for efficient local storage and complex querying.
- [Virtual File System Layers](https://awesome-repositories.com/f/data-databases/virtual-file-system-layers.md) — Provides a virtual file system layer that intercepts SQLite I/O calls and redirects them to browser storage.
- [Browser-Based Storage](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/client-side-persistence/browser-based-storage.md) — Provides structured relational data storage directly within the browser using IndexedDB to reduce network latency.

### Programming Languages & Runtimes

- [Embedded Wasm Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/webassembly/embedded-wasm-runtimes.md) — Executes the core SQLite engine within a WebAssembly module for high-performance browser-based querying.

### Operating Systems & Systems Programming

- [Demand Paging](https://awesome-repositories.com/f/operating-systems-systems-programming/paged-memory-management/database-page-mapping/demand-paging.md) — Minimizes memory overhead by loading only the specific database blocks required for the current operation.

### Software Engineering & Architecture

- [Asynchronous File I/O](https://awesome-repositories.com/f/software-engineering-architecture/non-blocking-io-architectures/asynchronous-file-i-o.md) — Implements a non-blocking bridge that wraps synchronous SQLite calls into asynchronous browser API requests.

### Web Development

- [Offline Web Applications](https://awesome-repositories.com/f/web-development/offline-web-applications.md) — Maintains a functional local database so web applications can continue to operate without an internet connection.
