You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[](https://central.sonatype.com/artifact/io.github.nsk90/kstatemachine)
KStateMachine is a powerful Kotlin Multiplatform library with clean DSL syntax for creating complex [state machines](https://en.wikipedia.org/wiki/Finite-state_machine)
33
-
and [statecharts](https://www.sciencedirect.com/science/article/pii/0167642387900359/pdf) driven by Kotlin Coroutines.
32
+
**KStateMachine** is a powerful **Kotlin Multiplatform** library with clean DSL syntax for creating
***Zero dependency** - it is written in pure Kotlin, it does not depend on any third party libraries or Android SDK.
48
+
***Zero dependency** - it is written in pure Kotlin, main library artifact does not depend on any third party libraries
49
+
or Android SDK.
46
50
47
51
### ⚙️ State management features
48
52
49
-
***[Event based](https://kstatemachine.github.io/kstatemachine/pages/events.html)** - [transitions](https://kstatemachine.github.io/kstatemachine/pages/transitions/transitions.html) are performed by
***[Optional argument](https://kstatemachine.github.io/kstatemachine/pages/events.html#event-argument)** passing for
93
+
events and
75
94
transitions
76
95
***[Export](https://kstatemachine.github.io/kstatemachine/pages/export.html)** state machine structure
77
96
to [PlantUML](https://plantuml.com/) and [Mermaid](https://mermaid.js.org/) diagrams
78
-
***[Persist (serialize)](https://kstatemachine.github.io/kstatemachine/pages/persistence.html)** state machine's active
79
-
configuration and restore it later
80
-
***[Testable](https://kstatemachine.github.io/kstatemachine/pages/testing.html)** - run state machine from specified state and enable internal logging
81
-
***[Well tested](https://github.com/kstatemachine/kstatemachine/tree/master/tests/src/commonTest/kotlin/ru/nsk/kstatemachine)** - all features are covered
82
-
by tests
97
+
***[Persist (serialize)](https://kstatemachine.github.io/kstatemachine/pages/persistence.html)** state machine's
98
+
active
99
+
configuration and restore it later. Built-in `kotlinx.serialization` support.
100
+
***[Testable](https://kstatemachine.github.io/kstatemachine/pages/testing.html)** - run state machine from specified
Copy/paste resulting output to [Plant UML online editor](http://www.plantuml.com/plantuml/)
43
43
44
-
See [PlantUML nested states export sample](https://github.com/nsk90/kstatemachine/tree/master/samples/src/commonMain/kotlin/ru/nsk/samples/PlantUmlExportSample.kt)
44
+
See [PlantUML nested states export sample](https://github.com/KStateMachine/kstatemachine/tree/master/samples/src/commonMain/kotlin/ru/nsk/samples/PlantUmlExportSample.kt)
to view diagrams directly in IDE for file types: `.mmd` and `.mermaid`.
61
61
* or copy/paste resulting output to [Mermaid live editor](https://mermaid.live/)
62
62
63
-
See [Mermaid nested states export sample](https://github.com/nsk90/kstatemachine/tree/master/samples/src/commonMain/kotlin/ru/nsk/samples/MermaidExportSample.kt)
63
+
See [Mermaid nested states export sample](https://github.com/KStateMachine/kstatemachine/tree/master/samples/src/commonMain/kotlin/ru/nsk/samples/MermaidExportSample.kt)
64
64
65
65
## Controlling export output
66
66
@@ -77,5 +77,5 @@ state("State1") {
77
77
}
78
78
```
79
79
80
-
See [PlantUML with MetaInfo export sample](https://github.com/nsk90/kstatemachine/tree/master/samples/src/commonMain/kotlin/ru/nsk/samples/PlantUmlExportWithMetaInfoSample.kt)
80
+
See [PlantUML with MetaInfo export sample](https://github.com/KStateMachine/kstatemachine/tree/master/samples/src/commonMain/kotlin/ru/nsk/samples/PlantUmlExportWithMetaInfoSample.kt)
0 commit comments