Efficient synchronous and asynchronous state machine library for .NET with zero heap allocations during execution.
LiquidState is a .NET library for building efficient state machines with both synchronous and asynchronous support. It solves the problem of managing complex state transitions in applications while maintaining high performance through zero heap allocations during execution. The library provides a fluent API for configuration and supports dynamic triggers and built-in diagnostics.
.NET developers building applications that require robust state management, such as workflow engines, UI state handling, or business process automation where performance and async support are critical.
Developers choose LiquidState for its exceptional performance due to zero heap allocations, full async/await integration, and flexible architecture that supports various concurrency models. It offers a more efficient alternative to dictionary-based state machine implementations with comprehensive diagnostics and dynamic state capabilities.
Efficient asynchronous and synchronous state machines for .NET
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Ensures no garbage collection during synchronous execution, as highlighted in the README, making it ideal for performance-critical applications.
Supports asynchronous methods in OnEntry, OnExit, triggers, and conditions, enabling seamless integration with async workflows.
Uses a linked object graph instead of dictionaries for state transitions, which the README states is faster and more efficient.
Includes MoveToState for direct changes and PermitDynamic for runtime state selection, offering high configurability.
Provides diagnostics to check trigger validity and available triggers, aiding in debugging and maintenance.
Requires extensive fluent API setup for each state and trigger, which can be cumbersome for simple or rapid prototyping needs.
The README explicitly notes that awaitable machines incur async/await costs, potentially impacting latency-sensitive scenarios.
Limited to basic examples in the README with no advanced guides, tutorials, or community resources, making learning curve steeper.
Lacks support for serializing or persisting state machine state, requiring custom implementation for use cases like crash recovery.
LiquidState is an open-source alternative to the following products: