All Projects → rustype → typestate-rs

rustype / typestate-rs

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
Proc-macro typestate DSL for Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to typestate-rs

ordered
Entropy-controlled contexts in Python
Stars: ✭ 36 (-67.27%)
Mutual labels:  state-machine
frame transpiler
Frame is a markdown language for creating state machines (automata) in 8 programming languages as well as generating UML documentation.
Stars: ✭ 35 (-68.18%)
Mutual labels:  automata
DemOS
Free, simple, extremely lightweight, stackless, cooperative, co-routine system (OS) for microcontrollers
Stars: ✭ 18 (-83.64%)
Mutual labels:  state-machine
bloc
A predictable state management library that helps implement the BLoC design pattern
Stars: ✭ 12 (-89.09%)
Mutual labels:  state-machine
hsm
C++ framework library to simplify state-driven code
Stars: ✭ 88 (-20%)
Mutual labels:  state-machine
visual-automata
Visual Automata is a Python 3 library built as a wrapper for the Automata library to add more visualization features.
Stars: ✭ 55 (-50%)
Mutual labels:  automata
public
BitDust project source codes : official Public Git repository (mirror on GitHub) : https://bitdust.io
Stars: ✭ 19 (-82.73%)
Mutual labels:  state-machine
stateless
Finite State Machine porting from Stateless C#
Stars: ✭ 25 (-77.27%)
Mutual labels:  state-machine
tic-tac-toe
🕹 iOS game - classic Tic Tac Toe with AI and state machines [Swift + SpriteKit + GameplayKit].
Stars: ✭ 60 (-45.45%)
Mutual labels:  state-machine
go-sm
A finite-state machine library for the Go programming language
Stars: ✭ 14 (-87.27%)
Mutual labels:  state-machine
flviz
FLVIz - Finite Automata Simulator written in QT/Graphviz
Stars: ✭ 36 (-67.27%)
Mutual labels:  state-machine
kuafu
This is a tool library that includes log, fsm, state machine...
Stars: ✭ 83 (-24.55%)
Mutual labels:  state-machine
annihilate
js action game
Stars: ✭ 49 (-55.45%)
Mutual labels:  state-machine
StateBuilder
State machine code generator for C++ and Java.
Stars: ✭ 30 (-72.73%)
Mutual labels:  state-machine
use-secret-code
Custom hook for adding cheat codes to your React app.
Stars: ✭ 16 (-85.45%)
Mutual labels:  state-machine
React-Machinery
🔥 React Machinery provides a simple to use, component based approach to state machines in react.
Stars: ✭ 104 (-5.45%)
Mutual labels:  state-machine
state-machine
The hyn state machine package is a flexible library that helps you move Eloquent models from States through Transitions while emitting events along the way.
Stars: ✭ 14 (-87.27%)
Mutual labels:  state-machine
ThingML
The ThingML modelling language
Stars: ✭ 91 (-17.27%)
Mutual labels:  state-machine
asyncmachine
Relational State Machine with a visual inspector
Stars: ✭ 67 (-39.09%)
Mutual labels:  state-machine
flow
A Statically Type Checked State Machine DSL for Kotlin
Stars: ✭ 74 (-32.73%)
Mutual labels:  state-machine

#[typestate]

github

This library provides developers with a macro to design typestated objects.

[dependencies]
typestate = "0.8.0"

Compiler support: requires rustc 1.42+

Documentation

If you're only interested in getting up and running with typestate, the documentation might be more useful for you. You can consult it in https://docs.rs/typestate/0.8.0/typestate/

If you're interested in learning more about the typestate crate, or typestates in Rust, you can read The Typestate Book in https://rustype.github.io/typestate-rs/.

Citing typestate

If you find typestate useful in your work, we kindly request you cite the following paper:

@inproceedings{10.1145/3475061.3475082,
    author = {Duarte, Jos\'{e} and Ravara, Ant\'{o}nio},
    title = {Retrofitting Typestates into Rust},
    year = {2021},
    url = {https://doi.org/10.1145/3475061.3475082},
    doi = {10.1145/3475061.3475082},
    booktitle = {25th Brazilian Symposium on Programming Languages},
    pages = {83–91},
    numpages = {9},
    series = {SBLP'21}
}

Alternatively, you can cite the extended version:

@article{10.1016/j.cola.2022.101154,
    title = {Taming stateful computations in Rust with typestates},
    journal = {Journal of Computer Languages},
    pages = {101154},
    year = {2022},
    issn = {2590-1184},
    doi = {10.1016/j.cola.2022.101154},
    url = {https://doi.org/10.1016/j.cola.2022.101154},
    author = {Duarte, Jos\'{e} and Ravara, Ant\'{o}nio},

Publications

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].