Byte2Pixel.TinyState
0.0.2-alpha
See the version list below for details.
dotnet add package Byte2Pixel.TinyState --version 0.0.2-alpha
NuGet\Install-Package Byte2Pixel.TinyState -Version 0.0.2-alpha
<PackageReference Include="Byte2Pixel.TinyState" Version="0.0.2-alpha" />
<PackageVersion Include="Byte2Pixel.TinyState" Version="0.0.2-alpha" />
<PackageReference Include="Byte2Pixel.TinyState" />
paket add Byte2Pixel.TinyState --version 0.0.2-alpha
#r "nuget: Byte2Pixel.TinyState, 0.0.2-alpha"
#:package Byte2Pixel.TinyState@0.0.2-alpha
#addin nuget:?package=Byte2Pixel.TinyState&version=0.0.2-alpha&prerelease
#tool nuget:?package=Byte2Pixel.TinyState&version=0.0.2-alpha&prerelease
TinyState
⚠️ This package is under active development and is not ready for use. Contributions are not being accepted at this time.
TinyState is a lightweight, fluent, and dependency-free state machine library for .NET. Build robust workflows, UI logic, or domain models with a clean and minimal API.
TinyState is a minimal yet powerful state machine library for .NET developers. It helps you model transitions and logic flows using a clean, fluent API — without any external dependencies.
✨ Features:
- Fluent configuration syntax: machine.Configure(State.A).When(Event.X).GoTo(State.B)
- Async transition hooks (OnEnter, OnExit, OnTransition)
- Immutability and runtime safety
- Optional state persistence
🛠️ Ideal for:
- UI navigation logic
- Domain-driven design (DDD) aggregates
- Game and simulation state control
- Rule-based workflows or user onboarding
- Event-driven architectures
Important Usage Notes
- All target states must be configured: Any state you transition to (using
.GoTo(...)
) must be explicitly configured with.Configure(State)
, even if you do not add hooks or transitions for that state. This ensures the state machine can safely execute hooks and maintain runtime safety. - Hook execution order: If you provide both async and sync hooks (e.g.,
OnEnterAsync
andOnEnter
), the async hook will always run before the sync hook. This order is not configurable and ensures that asynchronous side effects complete before synchronous logic runs. - Exceptions: The state machine will throw an
InvalidOperationException
if you attempt to fire a trigger that leads to an unconfigured state, or if a transition is not defined for the current state and trigger.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.0.3-alpha | 121 | 6/30/2025 |
0.0.2-alpha | 118 | 6/29/2025 |
0.0.1-alpha | 77 | 6/29/2025 |