Frame
Frame is a language for state machines, embedded in your native source code.
Write your project in your chosen language; Frame @@system blocks expand into
idiomatic state-machine implementations in that same language. Everything outside
the @@system blocks passes through unchanged — native code, no runtime
dependency, drop-in ready.
One specification compiles to 17 target languages — Python, TypeScript, JavaScript, Rust, C, C++, Java, C#, Go, PHP, Kotlin, Swift, Ruby, Erlang, Lua, Dart, GDScript — plus Graphviz for state-diagram visualization.
Quick install
cargo install framec
Start here
- Getting Started — tutorial introduction
- QuickStart — dense syntax reference
- Language Reference — full syntax and semantics
- Cookbook — 111 recipes, from basic machines to enterprise patterns
- Runtime — how a generated machine behaves at runtime
- Glossary — plain-English definitions of Frame terms
Project
Frame is developed in the open at github.com/frame-lang/framec. See the roadmap for what’s shipping next, and CONTRIBUTING to get involved.