Home

Awesome

Stars workflow Forks License Issues Open OpenSSF Scorecard

nuget nuget nuget

Twitter Dotnet

Discord Twitter Twitter

<img src="https://raw.githubusercontent.com/TimeWarpEngineering/timewarpengineering.github.io/refs/heads/master/images/LogoNoMarginNoShadow.svg" alt="logo" height="120" style="float: right" />

TimeWarp.State

TimeWarp.State (previously known as Blazor-State) is a fully asynchronous state management library for Blazor applications, leveraging the MediatR pipeline to implement the Flux pattern. It handles both Reducers and Effects consistently using async Handlers, simplifying the management of asynchronous operations throughout your app.

By utilizing the MediatR pipeline, TimeWarp.State enables a flexible, middleware-driven architecture for managing state, similar to the request-processing pipeline in ASP.NET. This approach allows developers to inject custom behaviors, such as logging, validation, and caching, directly into the state management flow.

In addition to the core library, we offer TimeWarp.State.Plus, which extends the functionality with enhanced middleware, components, and tools to further streamline state management in complex Blazor applications.

Give a Star! :star:

If you find this project useful, please give it a star. Thanks!

Getting Started

I recommend the tutorial for a step-by-step guide to building a Blazor app with TimeWarp.State.

See full documentation.

<img src="https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/refs/heads/master/Documentation/Images/TimeWarpStateOneWayFlow.drawio.svg" alt="logo" height="400" style="" />

Installation

dotnet add package TimeWarp.State
dotnet add package TimeWarp.State.Plus

Check out the latest NuGet packages on the TimeWarp Enterprises NuGet page.

Releases

View the Release Notes for detailed information on each release.

Unlicense

License
This project is licensed under the Unlicense.

Contributing

Your contributions are welcome! Before starting any work, please open a discussion.

Help with the documentation is also greatly appreciated.

Contact

If you have an issue and don't receive a timely response, feel free to reach out on our Discord server.

Discord