Contributing
Contributions to the CSM project are highly welcome!
There are many ways to get involved — whether by improving the runtime system,
advancing research, or supporting documentation and tutorials.
Where to start
-
Contributing to Cirrina Cirrina, the official runtime system for CSM, is available as an open-source project on
GitHub.
You can contribute by:- Fixing bugs 🐞
- Adding new features ✨
- Improving performance ⚡
- Enhancing documentation 📖
-
Research 📚 If you use CSM in your research or build on our publications, your work is a valuable contribution. Relevant publications can be found in our Publications.
-
Documentation and Tutorials 📝 Improving tutorials, examples, and reference documentation helps make CSM more accessible to new users.
Contributing to Cirrina
Cirrina is implemented in Java ☕ and Kotlin 💜, with Kotlin as the preferred language.
Contributions are submitted via pull requests from forks of the repository. Please see our Contribution Guide for details.
Info
For major changes or new features, please open a GitHub issue to align with the project roadmap.
Info
Broader discussions related to the CSM project take place on our Discussion Board.
Research 📖
We encourage researchers to share new findings, experiments, and insights that extend CSM.
These contributions help the project evolve and guide future development.
Note
If CSM is part of your research, please cite our primary publication:
Marlon Etheredge, Thomas Fahringer, Felix Erlacher, Elias Kohler, Stefan Pedratscher, Juan Aznar\-Poveda, Nishant Saurabh, and Adrien Lebre. Collaborative State Machines: A Better Programming Model for the Cloud\-Edge\-IoT Continuum. July 2025. [arXiv:2507.21685](https://arxiv.org/abs/2507.21685), [doi:10.48550/arXiv.2507.21685](https://doi.org/10.48550/arXiv.2507.21685).
Documentation and tutorials ✍️
The CSM project documentation is maintained here on this website.
Contributions, corrections, and enhancements are welcome via pull requests to the GitHub repository.