
**A powerful Kotlin Multiplatform state machine library with clean DSL syntax**
**and first-class Kotlin Coroutines support**
---
[](https://github.com/KStateMachine/kstatemachine/actions)
[](https://codecov.io/gh/nsk90/kstatemachine)
[](https://central.sonatype.com/artifact/io.github.nsk90/kstatemachine)
[](https://jitpack.io/#nsk90/kstatemachine)
[](https://kstatemachine.github.io/kstatemachine/#multiplatform)
[](https://plugins.jetbrains.com/plugin/32202-kstatemachine-visual/)
[](https://opencollective.com/kstatemachine)
[](https://github.com/KotlinBy/awesome-kotlin)
[](https://android-arsenal.com/details/1/8276)
[](https://kotlinlang.slack.com/archives/C07DVAEKLM8)
[](https://twitter.com/intent/tweet?text=I%20like%20KStateMachine%20library%20%0A%0Ahttps%3A%2F%2Fgithub.com%2Fkstatemachine%2Fkstatemachine&hashtags=kstatemachine,kotlin,opensource)
[](https://www.reddit.com/submit?url=https%3A%2F%2Fgithub.com%2Fkstatemachine%2Fkstatemachine&title=I%20like%20KStateMachine%20library)
---
[π Documentation](https://kstatemachine.github.io/kstatemachine) |
[π KDoc](https://kstatemachine.github.io/kstatemachine/kdoc/index.html) |
[π IntelliJ Plugin](#-intellij-idea-plugin) |
[π Quick Start](#-quick-start) |
[π§ͺ Samples](#-samples) |
[πΎ Install](#-install) |
[π¬ Discussions](https://github.com/kstatemachine/kstatemachine/discussions) |
[β€οΈ Sponsors](#-sponsors)
---
## What is KStateMachine?
**KStateMachine** lets you model complex application logic as
a [finite state machine](https://en.wikipedia.org/wiki/Finite-state_machine)
or [statechart](https://www.sciencedirect.com/science/article/pii/0167642387900359/pdf) using an expressive Kotlin DSL.
It runs on every Kotlin Multiplatform target, integrates seamlessly with Kotlin Coroutines, and has **zero mandatory
dependencies**.
---
## π Quick Start
### Animated traffic light