# ngrx/platform

**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/ngrx-platform).**

8,320 stars · 2,046 forks · TypeScript · NOASSERTION

## Links

- GitHub: https://github.com/ngrx/platform
- Homepage: https://ngrx.io
- awesome-repositories: https://awesome-repositories.com/repository/ngrx-platform.md

## Description

This project is a state management framework for Angular applications that provides a predictable state container. It implements a Redux-style architecture using a centralized store, managing global and local application data through an observable-based data flow of actions and reducers.

The framework includes a specialized entity management tool for organizing and synchronizing server-side data collections within client-side stores. It also provides a reactive store system that integrates state updates with Angular signals for change detection and includes debugging mechanisms for time-travel inspection and state analysis.

Broad capabilities include asynchronous side effect handling to isolate API calls from state transitions and the use of memoized selectors to cache derived state. The project also provides command-line tools for boilerplate generation, router state synchronization, and linting plugins to enforce architectural patterns.

## Tags

### Software Engineering & Architecture

- [Centralized State Stores](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/centralized-state-stores.md) — Implements a centralized state store that acts as the single source of truth for the entire application state. ([source](https://github.com/ngrx/platform/blob/main/CHANGELOG.md))
- [Asynchronous Effect Handlers](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-effect-handlers.md) — Provides a dedicated effects layer to isolate asynchronous API calls and external interactions from state transitions.
- [Observable State Management](https://awesome-repositories.com/f/software-engineering-architecture/observable-state-management.md) — Manages application data through an observable-based stream of actions and reducers to ensure predictable state transitions.
- [Reactive State Management](https://awesome-repositories.com/f/software-engineering-architecture/reactive-state-management.md) — Implements a predictable state container using an observable-based data flow to handle complex state transitions. ([source](https://github.com/ngrx/platform/blob/main/package.json))
- [Redux Implementations](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations.md) — Implements a Redux-style architecture using a centralized store with formal action dispatching and reducers.
- [Side Effect Handlers](https://awesome-repositories.com/f/software-engineering-architecture/side-effect-handlers.md) — Isolates asynchronous API calls and external interactions from pure state transitions using a dedicated listener layer.
- [State Management Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/state-management-frameworks.md) — Offers a structured state management framework using a predictable container and observable-based data flow.
- [Signals & Reactivity](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/reactive-subscription-systems/signals-reactivity.md) — Integrates observable state streams with reactive signals to enable efficient change detection and UI updates.
- [Boilerplate Generation](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/engineering-best-practices/development-process-methodologies/development-workflows/boilerplate-generation.md) — Ships command-line schematics to automate the generation of standardized actions, reducers, and selectors.

### Web Development

- [Centralized State Management](https://awesome-repositories.com/f/web-development/hydration-state-management/browser-side-state-management/centralized-state-management.md) — Implements a centralized store that acts as the single source of truth for application data in Angular.
- [Side Effect Management Libraries](https://awesome-repositories.com/f/web-development/side-effect-management-libraries.md) — Provides libraries to manage complex asynchronous side effects by listening for actions and dispatching state updates. ([source](https://github.com/ngrx/platform/blob/main/CHANGELOG.md))
- [Client-Side Entity Synchronization](https://awesome-repositories.com/f/web-development/client-side-entity-synchronization.md) — Maps server-side data to client-side entity stores using high-level services to keep information current. ([source](https://github.com/ngrx/platform/blob/main/CHANGELOG.md))
- [Derived State](https://awesome-repositories.com/f/web-development/derived-state.md) — Transforms raw state slices into formatted views using pure projector functions to avoid redundant calculations.
- [Memoized Derivations](https://awesome-repositories.com/f/web-development/memoized-derivations.md) — Implements memoized selectors that cache derived state and only re-compute values when specific input slices change.
- [Reactive Stores](https://awesome-repositories.com/f/web-development/reactive-stores.md) — Provides a system for building lightweight reactive stores with computed properties to manage local or global state. ([source](https://github.com/ngrx/platform/blob/main/CHANGELOG.md))
- [Client-Side Caching](https://awesome-repositories.com/f/web-development/state-synchronization/client-side-caching.md) — Includes specialized entity adapters to cache and manage server-side data collections locally to reduce network load.

### Business & Productivity Software

- [Entity Adapters](https://awesome-repositories.com/f/business-productivity-software/client-side-data-synchronization/entity-adapters.md) — Provides a specialized toolset for organizing and synchronizing server-side entity collections in the client store.

### Data & Databases

- [Entity CRUD Management](https://awesome-repositories.com/f/data-databases/entity-relationships/entity-crud-management.md) — Provides standardized utility functions for managing collections of objects using a normalized flat data structure via CRUD operations.

### Development Tools & Productivity

- [State Debugging Tools](https://awesome-repositories.com/f/development-tools-productivity/state-debugging-tools.md) — Connects state data to external debugging tools for time-travel inspection and detailed state analysis. ([source](https://github.com/ngrx/platform/blob/main/CHANGELOG.md))

### Part of an Awesome List

- [NgRx State Management](https://awesome-repositories.com/f/awesome-lists/devtools/ngrx-state-management.md) — Provides reactive state management for Angular applications.
- [State Management](https://awesome-repositories.com/f/awesome-lists/devtools/state-management.md) — Implements reactive state management for complex applications.
