# rt2zz/redux-persist-store

**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/rt2zz-redux-persist-store).**

12,969 stars · 848 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/rt2zz/redux-persist-store
- awesome-repositories: https://awesome-repositories.com/repository/rt2zz-redux-persist-store.md

## Description

Redux Persist is a state management utility designed to maintain application data across sessions by synchronizing state with local storage. It functions as a middleware-based engine that automatically saves and restores application state, ensuring that user sessions remain intact after page refreshes or application restarts.

The library distinguishes itself through granular control over the persistence lifecycle and data structure. It supports recursive state tree partitioning, allowing developers to apply distinct storage configurations and filtering rules to specific branches of the application state. This is complemented by a transformation pipeline that enables custom data handling, such as encryption, compression, and schema migration, ensuring that stored information remains compatible with evolving application structures.

Beyond basic persistence, the project provides comprehensive tools for managing complex data synchronization. It includes mechanisms for reconciling saved data with the current application state, managing cross-platform storage backends, and coordinating the rehydration process to ensure the user interface only renders once the state has been fully retrieved. The library is available as a TypeScript package and provides a unified interface for integrating with various storage environments.

## Tags

### Data & Databases

- [Persistent Application State](https://awesome-repositories.com/f/data-databases/persistent-application-state.md) — Saves current application data to a storage medium and automatically restores it upon reload to maintain a continuous user session. ([source](https://github.com/rt2zz/redux-persist-store#readme))
- [Redux State Persistence](https://awesome-repositories.com/f/data-databases/state-persistence/browser-storage-persistence/vuex-state-persistence/redux-state-persistence.md) — Saves the application store to local storage so state survives page reloads or application restarts using configurable storage engines.
- [Rehydration Lifecycles](https://awesome-repositories.com/f/data-databases/application-state-management/lifecycle-state-coordination/rehydration-lifecycles.md) — Coordinates the asynchronous loading of serialized data into the application store before the user interface renders to ensure consistency.
- [Data Synchronization Engines](https://awesome-repositories.com/f/data-databases/data-synchronization-engines.md) — Manages the lifecycle of persisted application data, including version migration, selective filtering, and asynchronous store rehydration.
- [Cross-Platform Storage Frameworks](https://awesome-repositories.com/f/data-databases/cross-platform-storage-frameworks.md) — Configures different storage backends to maintain consistent application state across web browsers and mobile operating systems.
- [Data Persistence Management](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-persistence-management.md) — Provides control over when data is saved, paused, or cleared from disk to ensure synchronization occurs exactly when the application requires it. ([source](https://github.com/rt2zz/redux-persist-store#readme))
- [Frontend State Management](https://awesome-repositories.com/f/data-databases/frontend-state-management.md) — Manages the lifecycle of application state to ensure data is correctly loaded and merged when a user returns to the app.
- [State Migrations](https://awesome-repositories.com/f/data-databases/light-client-synchronization/state-migrations.md) — Facilitates converting older versions of saved data into the current format before loading to ensure compatibility after application updates. ([source](https://github.com/rt2zz/redux-persist-store#readme))
- [Local State Management](https://awesome-repositories.com/f/data-databases/local-state-management.md) — Maintains continuous user sessions by syncing complex application data structures with local browser or mobile storage.
- [Persistence Layer Configurations](https://awesome-repositories.com/f/data-databases/nested-data-persistence/persistence-layer-configurations.md) — Allows applying multiple storage layers to different parts of the data tree to support varied storage adapters or granular filtering requirements. ([source](https://github.com/rt2zz/redux-persist-store#readme))
- [Persisted State Initialization](https://awesome-repositories.com/f/data-databases/persistent-storage-providers/persisted-state-initialization.md) — Provides strategies to merge saved data with the current application state to handle updates during the initial loading process. ([source](https://github.com/rt2zz/redux-persist-store#readme))
- [Persistence Filters](https://awesome-repositories.com/f/data-databases/state-persistence/browser-storage-persistence/persistence-filters.md) — Enables selecting specific data to include or exclude from storage using allowlists or blocklists to keep the saved information size manageable. ([source](https://github.com/rt2zz/redux-persist-store#readme))
- [Storage Abstractions](https://awesome-repositories.com/f/data-databases/storage-abstractions.md) — Provides a unified interface for heterogeneous storage backends to handle data persistence across diverse web and mobile environments.

### Development Tools & Productivity

- [Application State Restorations](https://awesome-repositories.com/f/development-tools-productivity/application-state-restorations.md) — Automatically restores previously saved data into the application store when the software initializes after a page refresh or restart. ([source](https://github.com/rt2zz/redux-persist-store#readme))

### Web Development

- [State Management Middleware](https://awesome-repositories.com/f/web-development/state-management-middleware.md) — Intercepts every state change within the application to trigger asynchronous persistence operations without blocking the main execution thread.
- [Rehydration-Aware Renderers](https://awesome-repositories.com/f/web-development/server-side-rendering/sync-aware-rendering/rehydration-aware-renderers.md) — Supports delaying user interface rendering until the previously saved application state has been fully retrieved and integrated into the active store. ([source](https://github.com/rt2zz/redux-persist-store#readme))

### Part of an Awesome List

- [Application State Caching](https://awesome-repositories.com/f/awesome-lists/data/caching-and-sessions/application-state-caching.md) — Provides granular control over which parts of the application state are persisted to local storage to optimize performance and storage usage.
- [React - A JavaScript library for building user interfaces](https://awesome-repositories.com/f/awesome-lists/more/react-a-javascript-library-for-building-user-interfaces.md) — Listed in the “React - A JavaScript library for building user interfaces” section of the Awesome Redux awesome list.

### DevOps & Infrastructure

- [Application Upgrade Data Migration](https://awesome-repositories.com/f/devops-infrastructure/application-upgrade-data-migration.md) — Updates older versions of saved data to match new application structures during the initialization process to prevent compatibility errors.
- [Storage Backend Configurations](https://awesome-repositories.com/f/devops-infrastructure/storage-backend-configurations.md) — Allows configuring storage backends to connect application data to local browser storage, mobile file systems, or encrypted engines. ([source](https://github.com/rt2zz/redux-persist-store#readme))

### Programming Languages & Runtimes

- [Serialization Pipelines](https://awesome-repositories.com/f/programming-languages-runtimes/multi-pass-compiler-pipelines/schema-transformation-pipelines/schema-to-type-transformations/serialization-pipelines.md) — Applies custom transformation pipelines to state objects during read and write operations to support encryption, compression, and schema migration.

### Software Engineering & Architecture

- [UI State Reconciliation](https://awesome-repositories.com/f/software-engineering-architecture/execution-control/declarative-reconciliation-engines/data-store-reconciliation/ui-state-reconciliation.md) — Combines restored data with the current application state using configurable strategies to resolve conflicts during the initialization process.
- [State Tree Partitioning](https://awesome-repositories.com/f/software-engineering-architecture/single-state-trees/state-tree-partitioning.md) — Enables granular persistence control by applying distinct storage configurations and filtering rules to specific branches of the application state.
