Starklings
An interactive tutorial to get you up and running with Cairo v1 and Starknet
Install / Use
/learn @shramee/StarklingsREADME
<a href="https://app.onlydust.com/p/starklings-cairo1">
<img src="https://img.shields.io/badge/OnlyDust-Starklings-grey?labelColor=000&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAAAXNSR0IArs4c6QAABNNJREFUOE9tlGtQ1FUchp/z/+8usLCArOAuICyggwpI4mVEQzNJVMQZb6WpqTikXSxDDC2bMUv9YAw2loWUOo06lo02XsoUL2NqogmmgmCgcleQ24Jclt09zeLo2OV8O7/3Pc+cOXPeV/A/S57B96Zm/Gu7m1MLsqYvOv+sZVNeXvwrg/rGhgcF7hEioP3fx8WzA7keDRGk1hst2cOiDl+rDR061qWf8S/y8lOMMvaB6ZFrv25SbWHGHhHm4+++Anz3CiGcTzhPgTJluJ6Yqzk9g3ULdmw+S3P38Bkflbv9JFv29nFszjyIqkg185fZwieqKZKSlcuSPLLfO2YEteNLaF0lxMBuF7QXKJGKLe7Vb3RT9y+5rsaT+vE+3BEJUTkN+VWJynf1FbY5slFHDH77FxeFLg7OPrvYy6Ms1//sBNTIfkB9NoSvEkLIXmABDfMiLNn7vBdtpuC3XBpPzyPY/c5XQ7pi3nTpppyu5G67Q2l+y/NI7wU+VU+idSQ6x29EjMxAKJXguJ8iNAlHxRykOg9b9XjjLpPfrDU0HNuEX+xO1OjCDtJGmMXAfOs/3lleNvHwSCXSqXV2GVCCl4NoAsftMtRLkWIy1hlz0B+covsZU8o6RNx18AfiIiAmy4Fu2twDB9RDHICJi1ihH0KW1mxXhEbB3gw6/xbACvZb0JyXLOKo+3Yp/VInKwUExXyO27pDMCwJwtfj7Img9bQHTefbnT11IOu9FH00SDt4J4BikPhOuA90QtdlKNuYI/y4dW06lthkVAa53WHQiZ1oEtKQzhAaT9nZOt+J46FGvkQX/d1rxSO/MKS7B442CFjaTkjGdugogQcXofKvQqFyuXYIZnMiZp5DYei0FgZse8SWWUY6CnUESBU/sI+iCV+KNXrtbdQBNZR3LCNidhq+0XmgOKG1B+ocdSKAgmob2qARBBGHgXDgLhIvNBgRBABeUDqAkr7eosjoYb6BR0Q+R5piMUUWMzr6KLi+dZtA1vSvEXOpunic+ngVHRb0rCKUOrrpRkcgGgyPgdvDKA/2Ua5N97TkU9vnASsLs/CWbqwJPoFJew8P0UhPc9gl8SOOrCo6069hxRcNw/DlJlaq6CKZIDwBPcwcQFmYQSnKMljOs7D6dbAF0wctI9FgwYkndhRElsi1yBf07ZwxNEm6nU7qsFGMlbt0MJUg/NEhwS+GunCj8ucfdabbpNfOJwQDRrQYhBONVNACboiE3qS8uLbn6pLdmrj6+61c0FVgUjWypsNLGHAjmX72eQitK57V4rT9Q62XKLeFk2TqlC9HHBbnSsZxpXEwlXTk/4rP6F7gpPSeMbMOq+dC73SrCW8PRDepoXVmSnGph9SNSiG4cyFC7/JViIvdY6WnLlg1n9+3tu9QNcjmveV9JxVtDkcnzufz8Ln0tG1yQ+Q7/SvZ6rDkiylZY2joDMzMXHA5PQqz+2qE7+PM322Pp6X+xvfRuzyrlQ2fbWuh4J6QNmzpv2Pa+rRtnmT1OPLdNpxbvMblapNWv1G1IcU64j5c+BrDQJcnjYqqXBqirVfiij/5oCbw2EnZY4PMMkKy/9OHTwY/ICPbsJ0KmfKFOTFtbeySmaVluwnrcukW7rqXtPsnZCwvPb5jj1Ltjm6ilaiyZ8vjb2wS2X7S7itMAAAAAElFTkSuQmCC" />
</a>
<a href="https://twitter.com/intent/follow?screen_name=onlydust_com">
<img src="https://img.shields.io/twitter/follow/onlydust_com?label=Follow OnlyDust&style=social" />
</a>
<a href="https://twitter.com/intent/follow?screen_name=shrameetweets">
<img src="https://img.shields.io/twitter/follow/shrameetweets?label=Follow ShrameeTweets&style=social" />
</a>
<a href="https://t.me/+wu8frxmrbeliZWI1">
<img src="https://img.shields.io/static/v1?label=Telegram&message=Starklings Dev&color=eee&logo=telegram&style=social" />
</a>
STARKLINGS
An interactive tutorial to get you up and running with Cairo and Starknet
Overview
Starklings is an interactive tutorial project designed to help you learn Cairo and Starknet development through practical exercises. The project consists of two main components:
<a href="./README.APP.md">Starklings APP <img align="right" alt="Readme APP" src="https://img.shields.io/badge/Readme-grey"></a>
A web-based in browser Starklings experience
<a href="./README.CLI.md">Starklings CLI <img align="right" alt="Readme CLI" src="https://img.shields.io/badge/Readme-grey"></a>
CLI-based interactive tutorial
Both versions share the same core exercises and hints, with a single source of truth for all content.
Contributing
Thanks for your interest in the project. You can fork the repo, create a branch with a descriptive name (maybe the issue number and a word or two to describe it) and submit a pull request.
Testing
Cairo related tests
cargo test cairo
All tests
cargo test
App tests
Coming soon
Adding new exercises
Here's what an exercise looks like,
- An exercise is pretty much a single well commented Cairo file.
- Exercises are organised into modules and are placed in
./exercises/<module_name>/<exercise_name>.cairo - Exercise accompanies some metadata describing it in
./info.toml - When introducing a concept for the first time, try to start minimally.
- Subsequent exercises for the same concept can grow in complexity.
Contributing with a new exercise
- Add the exercise file in the
./exercisesdirectory. - Insert information about the exercise in
./info.tomlfile. For example[[exercises]] name = "new_exercise" path = "exercises/new_module/new_exercise.cairo" mode = "test" hint = """ Try the Harlem shake """ - Run your exercise with
starklings runas you write
cargo run -r --bin starklings run new_exercise
- Check that the tests pass.
- Send your PR!
Updating Rust logic/Cairo version
- Test your changes.
- Make sure you have solutions to all the exercises in
./solutionsdirectory. - Run
cargo run -r --bin starklings compile_solutionsto confirm all exercise solutions still compile. - Make your pull request.
