awesome-repositories.com
Blog
MCP
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
dotnet-state-machine avatar

dotnet-state-machine/stateless

0
View on GitHub↗
6,191 stars·806 forks·C#·11 vues

Stateless

Stateless est une bibliothèque de machine à états pour .NET utilisée pour gérer des comportements d'objets complexes et des workflows légers via du code C#. Il fonctionne comme un moteur de workflow asynchrone qui exécute des transitions d'état, des gardes et des actions d'entrée/sortie en utilisant des tâches asynchrones.

La bibliothèque implémente une machine à états hiérarchique, permettant aux états enfants d'hériter des transitions et propriétés des super-états parents. Elle inclut un framework de persistance d'état qui découple le suivi d'état de la logique de la machine en lisant et écrivant l'état actuel vers des propriétés externes ou des bases de données. De plus, elle dispose d'un exportateur de visualisation de graphe qui génère des formats DOT ou Mermaid pour rendre les configurations de workflow sous forme de diagrammes visuels.

Le système couvre le mapping de transition avec prise en charge des transitions réentrantes et internes, des clauses de garde basées sur des prédicats, et le dispatch de déclencheurs paramétriques. Il fournit également des capacités d'introspection de configuration de machine, des notifications de changement d'état, et l'exécution de logique synchrone ou asynchrone lors des entrées et sorties d'état.

Features

  • Application State Machines - Implements a .NET state machine library for managing behavioral transitions and lifecycles of application-level objects.
  • Architectural State Machines - Provides a .NET state machine library for managing transitions between complex object states within an application architecture.
  • Application State Management - Manages complex object behaviors and application logic through defined states and transitions to eliminate nested conditionals.
  • External State Stores - Provides an external state store mechanism to decouple state tracking from machine logic via getter and setter delegates.
  • State Transition Handlers - Executes synchronous or asynchronous logic during state changes with access to trigger and source state details.
  • State Lifecycle Actions - Automatically runs specific setup and cleanup logic when a state is entered or exited.
  • Asynchronous State Transition Orchestration - Orchestrates state transitions and guard conditions using asynchronous tasks to ensure application responsiveness.
  • Hierarchical State Composition - Supports hierarchical state organization where child states inherit transitions and behaviors from superstates.
  • Asynchronous State Transitions - Executes state transitions, entry, and exit handlers asynchronously to prevent thread blocking.
  • Transition Guard Predicates - Evaluates boolean predicate functions at runtime to determine the destination state when multiple transitions exist.
  • Transition Guards - Evaluates conditional logic via predicate functions to resolve destination states for triggers.
  • Hierarchical State Machines - Implements hierarchical state machines that organize workflows into parent and child states with behavioral inheritance.
  • State Persistence Frameworks - Provides a framework for reading and writing the current state to external properties or databases to maintain continuity.
  • State Transition Mapping - Maps trigger events to source and destination states to define the system's logical flow.
  • State Graph Export - Exports internal state machine configurations into visual graph formats like DOT and Mermaid.
  • State Machine Visualizations - Generates DOT and Mermaid graph definitions to visualize state machine configurations as diagrams.
  • Parametric Transitions - Enables sending data along with a trigger to influence the behavior of state transitions or resulting actions.
  • Parametric Trigger Dispatch - Allows passing strongly typed data through triggers to dynamically resolve the next state or influence transition logic.
  • Fluent Configuration APIs - Offers a fluent-API configuration for defining state transitions and behaviors using method-chaining.
  • Internal Transitions - Processes triggers that execute logic without altering the current state of the machine.
  • State Change Observers - Provides mechanisms to trigger callbacks and synchronize application logic when state transitions occur.
  • Delegate-Based Action Execution - Implements state entry, exit, and transition actions by invoking registered C# delegates and asynchronous tasks.
  • State Transition Validation - Verifies if a trigger can be fired and provides details on unmet guard conditions.
  • Workflow Visualizations - Generates visual representations of business logic and state flows using DOT and Mermaid diagram formats.
  • Scheduling and Automation - State machine creation library.
  • Architecture Patterns - State machine implementation for managing application logic.
  • State Machines - Library for creating state machines in code.

Historique des stars

Graphique de l'historique des stars pour dotnet-state-machine/statelessGraphique de l'historique des stars pour dotnet-state-machine/stateless

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Stateless

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Stateless.
  • jakesgordon/javascript-state-machineAvatar de jakesgordon

    jakesgordon/javascript-state-machine

    8,751Voir sur GitHub↗

    This library is a finite state machine framework for JavaScript designed to manage application states and valid transitions. It provides a system for executing state changes with lifecycle hooks, conditional guards, and transition cancellation. The project is distinguished by its ability to inject state machine logic and transition capabilities directly into existing JavaScript class instances or objects. It also includes a visualization tool that exports state configurations into Graphviz DOT language for auditing system logic. The framework covers asynchronous transition execution and paus

    JavaScript
    Voir sur GitHub↗8,751
  • pytransitions/transitionsAvatar de pytransitions

    pytransitions/transitions

    6,548Voir sur GitHub↗

    Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid states and the logic for moving between them, including implementations for asynchronous state machines and thread-safe state managers. The library supports hierarchical state machines that allow states to be nested to organize complex subtasks and logical contexts. It includes tools for generating visual diagrams of states and transitions to document machine logic. The project covers state management primitives such as lifecycle callbacks, conditional transition guarding, an

    Python
    Voir sur GitHub↗6,548
  • aasm/aasmAvatar de aasm

    aasm/aasm

    5,219Voir sur GitHub↗

    This library provides a framework for defining finite state machines within Ruby classes to manage complex object lifecycles. It functions as a declarative workflow engine, allowing developers to model object states, events, and transitions through a readable domain-specific language. By integrating directly with database persistence layers, the framework ensures that state changes are synchronized with storage records while maintaining data integrity through transaction management and row locking. The library distinguishes itself by enforcing strict business rules through conditional transit

    Ruby
    Voir sur GitHub↗5,219
  • pluginaweek/state_machineAvatar de pluginaweek

    pluginaweek/state_machine

    3,722Voir sur GitHub↗

    This project is a Ruby library for defining and managing object lifecycles through states, events, and transition rules. It functions as a declarative workflow engine that enforces business logic by restricting attribute changes to predefined, valid paths within Ruby classes. The library distinguishes itself through deep integration with database persistence layers, allowing it to automatically synchronize state changes with data models, validation frameworks, and transaction management. It supports dynamic configuration, enabling the construction of lifecycle rules at runtime from external d

    Ruby
    Voir sur GitHub↗3,722
Voir les 30 alternatives à Stateless→

Questions fréquentes

Que fait dotnet-state-machine/stateless ?

Stateless est une bibliothèque de machine à états pour .NET utilisée pour gérer des comportements d'objets complexes et des workflows légers via du code C#. Il fonctionne comme un moteur de workflow asynchrone qui exécute des transitions d'état, des gardes et des actions d'entrée/sortie en utilisant des tâches asynchrones.

Quelles sont les fonctionnalités principales de dotnet-state-machine/stateless ?

Les fonctionnalités principales de dotnet-state-machine/stateless sont : Application State Machines, Architectural State Machines, Application State Management, External State Stores, State Transition Handlers, State Lifecycle Actions, Asynchronous State Transition Orchestration, Hierarchical State Composition.

Quelles sont les alternatives open-source à dotnet-state-machine/stateless ?

Les alternatives open-source à dotnet-state-machine/stateless incluent : pytransitions/transitions — Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid… jakesgordon/javascript-state-machine — This library is a finite state machine framework for JavaScript designed to manage application states and valid… aasm/aasm — This library provides a framework for defining finite state machines within Ruby classes to manage complex object… pluginaweek/state_machine — This project is a Ruby library for defining and managing object lifecycles through states, events, and transition… day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,… effector/effector — Effector is a reactive state management library designed for building complex, event-driven applications. It functions…