An Angular service that wraps IndexedDB with a simple observable API for client-side and server-side rendering.
ngx-indexed-db is an Angular service that provides a wrapper around the IndexedDB API, exposing it through a simple observable interface. It solves the problem of complex IndexedDB plumbing in Angular applications by offering a reactive, Angular-native way to perform client-side database operations like CRUD, queries, and migrations.
Angular developers building applications that require client-side data persistence, such as Progressive Web Apps (PWAs), offline-capable apps, or apps needing local storage beyond simple key-value pairs.
Developers choose ngx-indexed-db because it integrates seamlessly with Angular's dependency injection and reactive patterns, eliminates IndexedDB boilerplate, and provides full SSR support, making it a robust solution for modern Angular applications.
A service that wraps IndexedDB database in an Angular service. It exposes very simple observables API to enable the usage of IndexedDB without most of it plumbing.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
All database operations return RxJS observables, enabling seamless use with Angular's change detection and reactive streams, as demonstrated in API examples like add().subscribe().
Fully supports Angular Server-Side Rendering by handling the absence of IndexedDB on the server, preventing runtime errors in SSR environments from version 19.2.0 onwards.
Provides a versioned migration system with factory functions to manage schema changes over time, ensuring data integrity during updates, as detailed in the migration section.
Includes bulk add, update, delete, and get methods that optimize performance by reducing transaction overhead, shown in examples like bulkAdd and bulkDelete.
Setting up object stores and migrations requires verbose TypeScript configuration, which can be error-prone and time-consuming for developers unfamiliar with IndexedDB schemas.
As a niche Angular library, it lacks the extensive ecosystem of tools, plugins, and community resources available for more universal IndexedDB wrappers like localForage.
Deeply integrated with Angular's DI and RxJS, making it unsuitable for projects that might migrate away from Angular or need framework-agnostic solutions.