{"id":13466547,"url":"https://github.com/TimeWarpEngineering/timewarp-state","last_synced_at":"2025-03-25T21:32:29.625Z","repository":{"id":39619882,"uuid":"130165328","full_name":"TimeWarpEngineering/timewarp-state","owner":"TimeWarpEngineering","description":"A Blazor State management library by TimeWarp.","archived":false,"fork":false,"pushed_at":"2024-10-22T07:15:57.000Z","size":16388,"stargazers_count":557,"open_issues_count":8,"forks_count":56,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-10-29T17:29:33.238Z","etag":null,"topics":["blazor","csharp","dotnet","flux","hacktoberfest","mediatr","redux","state-management"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TimeWarpEngineering.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-19T05:52:04.000Z","updated_at":"2024-10-25T21:33:36.000Z","dependencies_parsed_at":"2024-08-04T09:01:57.738Z","dependency_job_id":"b1ce0ae5-f4b2-49ff-8f35-afe03f1c680b","html_url":"https://github.com/TimeWarpEngineering/timewarp-state","commit_stats":{"total_commits":2291,"total_committers":13,"mean_commits":"176.23076923076923","dds":0.02880838061981672,"last_synced_commit":"e1791e6b956fe8ca1b66fa314c7f15a604dfda31"},"previous_names":["timewarpengineering/timewarp-state","timewarpengineering/blazor-state"],"tags_count":109,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeWarpEngineering%2Ftimewarp-state","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeWarpEngineering%2Ftimewarp-state/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeWarpEngineering%2Ftimewarp-state/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimeWarpEngineering%2Ftimewarp-state/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TimeWarpEngineering","download_url":"https://codeload.github.com/TimeWarpEngineering/timewarp-state/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245548532,"owners_count":20633605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blazor","csharp","dotnet","flux","hacktoberfest","mediatr","redux","state-management"],"created_at":"2024-07-31T15:00:45.996Z","updated_at":"2025-03-25T21:32:29.590Z","avatar_url":"https://github.com/TimeWarpEngineering.png","language":"C#","readme":"[![Stars](https://img.shields.io/github/stars/TimeWarpEngineering/timewarp-state?logo=github)](https://github.com/TimeWarpEngineering/timewarp-state)\r\n[![workflow](https://github.com/TimeWarpEngineering/timewarp-state/actions/workflows/release-build.yml/badge.svg)](https://github.com/TimeWarpEngineering/timewarp-state/actions)\r\n[![Forks](https://img.shields.io/github/forks/TimeWarpEngineering/timewarp-state)](https://github.com/TimeWarpEngineering/timewarp-state)\r\n[![License](https://img.shields.io/github/license/TimeWarpEngineering/timewarp-state.svg?style=flat-square\u0026logo=github)](https://github.com/TimeWarpEngineering/timewarp-state/issues)\r\n[![Issues Open](https://img.shields.io/github/issues/TimeWarpEngineering/timewarp-state.svg?logo=github)](https://github.com/TimeWarpEngineering/timewarp-state/issues)\r\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/TimeWarpEngineering/timewarp-state/badge)](https://scorecard.dev/viewer/?uri=github.com/TimeWarpEngineering/timewarp-state)\r\n\r\n[![nuget](https://img.shields.io/nuget/v/TimeWarp.State?logo=nuget)](https://www.nuget.org/packages/TimeWarp.State/)\r\n[![nuget](https://img.shields.io/nuget/dt/Blazor-State?logo=nuget)](https://www.nuget.org/packages/Blazor-State/)\r\n[![nuget](https://img.shields.io/nuget/dt/TimeWarp.State?logo=nuget)](https://www.nuget.org/packages/TimeWarp.State/)\r\n\r\n[![Twitter](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Fgithub.com%2FTimeWarpEngineering%2Ftimewarp-state)](https://twitter.com/intent/tweet?url=https://github.com/TimeWarpEngineering/timewarp-state)\r\n[![Dotnet](https://img.shields.io/badge/dotnet-8.0-blue)](https://dotnet.microsoft.com)\r\n\r\n[![Discord](https://img.shields.io/discord/715274085940199487?logo=discord)](https://discord.gg/7F4bS2T)\r\n[![Twitter](https://img.shields.io/twitter/follow/StevenTCramer.svg)](https://twitter.com/intent/follow?screen_name=StevenTCramer)\r\n[![Twitter](https://img.shields.io/twitter/follow/TheFreezeTeam1.svg)](https://twitter.com/intent/follow?screen_name=TheFreezeTeam1)\r\n\r\n\u003cimg src=\"https://raw.githubusercontent.com/TimeWarpEngineering/timewarpengineering.github.io/refs/heads/master/images/LogoNoMarginNoShadow.svg\" alt=\"logo\" height=\"120\" style=\"float: right\" /\u003e\r\n\r\n# TimeWarp.State\r\n\r\n**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.\r\n\r\nBy 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.\r\n\r\nIn addition to the core library, we offer **[TimeWarp.State.Plus](/Source/TimeWarp.State.Plus)**, which extends the functionality with enhanced middleware, components, and tools to further streamline state management in complex Blazor applications.\r\n\r\n## Give a Star! :star:\r\n\r\nIf you find this project useful, please give it a star. Thanks!\r\n\r\n## Getting Started\r\n\r\nI recommend the [tutorial](xref:TimeWarp.State:00-StateActionHandler.md) for a step-by-step guide to building a Blazor app with TimeWarp.State.\r\n\r\nSee full [documentation](https://timewarpengineering.github.io/timewarp-state/).\r\n\r\n\u003cimg src=\"https://raw.githubusercontent.com/TimeWarpEngineering/timewarp-state/refs/heads/master/Documentation/Images/TimeWarpStateOneWayFlow.drawio.svg\" alt=\"logo\" height=\"400\" style=\"\" /\u003e\r\n\r\n## Installation\r\n\r\n```console\r\ndotnet add package TimeWarp.State\r\ndotnet add package TimeWarp.State.Plus\r\n```\r\n\r\nCheck out the latest NuGet packages on the [TimeWarp Enterprises NuGet page](https://www.nuget.org/profiles/TimeWarp.Enterprises).\r\n\r\n* [TimeWarp.State](https://www.nuget.org/packages/TimeWarp.State/) [![nuget](https://img.shields.io/nuget/v/TimeWarp.State?logo=nuget)](https://www.nuget.org/packages/TimeWarp.State/)\r\n* [TimeWarp.State.Plus](https://www.nuget.org/packages/TimeWarp.State.Plus/) [![nuget](https://img.shields.io/nuget/v/TimeWarp.State.Plus?logo=nuget)](https://www.nuget.org/packages/TimeWarp.State.Plus/)\r\n\r\n## Releases\r\n\r\nView the [Release Notes](https://timewarpengineering.github.io/timewarp-state/ReleaseNotes/Release11.0.0.html) for detailed information on each release.\r\n\r\n## Unlicense\r\n\r\n[![License](https://img.shields.io/github/license/TimeWarpEngineering/timewarp-state.svg?style=flat-square\u0026logo=github)](https://unlicense.org)  \r\nThis project is licensed under the [Unlicense](https://unlicense.org).\r\n\r\n## Contributing\r\n\r\nYour contributions are welcome! Before starting any work, please open a [discussion](https://github.com/TimeWarpEngineering/timewarp-state/discussions).\r\n\r\nHelp with the [documentation](https://timewarpengineering.github.io/timewarp-state/) is also greatly appreciated.\r\n\r\n## Contact\r\n\r\nIf you have an issue and don't receive a timely response, feel free to reach out on our [Discord server](https://discord.gg/A55JARGKKP).\r\n\r\n[![Discord](https://img.shields.io/discord/715274085940199487?logo=discord)](https://discord.gg/7F4bS2T)\r\n\r\n","funding_links":[],"categories":["Libraries \u0026 Extensions","csharp","redux"],"sub_categories":["Tools \u0026 Utilities"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTimeWarpEngineering%2Ftimewarp-state","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTimeWarpEngineering%2Ftimewarp-state","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTimeWarpEngineering%2Ftimewarp-state/lists"}