Welcome to Open Source Bytes, a collection of fun and educational Rust games! 🦀
Play the Bytes on here!
- Bytes are Rust coding games designed for pure Rust learning! 🚀
- We love Rust and want everyone else to learn. What better way to learn than by reading Rust code and guessing what bugs there are? 🐛
- We want you to contribute your own Bytes to make the Rust challenges even more fun! 🤝 Be creative!
Build small Rust CLI projects! Just make sure you follow these rules:
- Be unique 🌟
- Code must compile! ✅
- Add Tests to your code 🧪
- Make it short and sweet! We want other students to be able to read and understand these in one go 💪
Here are some ideas to get you started. Each Byte is designed to be a small, self-contained project that is easy to understand and work with:
- Banking System: Manage accounts, transactions, balances and interest rates.
- AI Coffee Shop: Utilize LLM that can take customer orders through the CLI.
- Weather Forecasting: Input location and get a simulated weather forecast.
- Explore more Byte Ideas! Feel free to take on any idea! Just leave a comment saying, "I'll work on this!" You'll have one week to complete it once you claim an idea.
If you have an idea for a new Byte and want to discuss it before writing code, you can start by opening an issue:
-
Open an Issue for Brainstorming
-
Collaborate and Refine
- Engage with the community by responding to comments.
- Refine your idea based on the feedback received.
-
Proceed to Implementation
- Once your idea is well-defined, follow the steps below to build your Byte.
- Fork the repository: https://github.com/coreyja/crowd-source-bytes
- Clone your forked repository:
git clone https://github.com/YOUR_USERNAME/crowd-source-bytes.git cd crowd-source-bytes
- Create a new branch with the following branch name style:
git checkout -b <your-name>/main/<name-of-byte>-byte
- Create a new Rust project for your byte:
cargo new <name-of-your-byte>
- Add the name of your project to the
members
list in the rootCargo.toml
file. This sets up a Cargo workspace with all the packages together! More info about workspaces here: https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html - Navigate to your new byte project:
cd <name-of-your-byte>
- Open
src/main.rs
and write your code for your byte.
- Commit your changes:
git add . git commit -m "Add <name-of-your-byte> Byte"
- Push your changes to your fork:
git push origin <your-name>/main/<name-of-byte>-byte
- Write a description of your Byte and instructions on how to run it locally.
- Add test cases to the
tests/
directory. - Create a test plan for your Byte, including:
- A description of the test plan
- Expected output
- Leave comments in the diff indicating where you want the "bug" to be 🐞
- Run
cargo fmt
to make sure your code is formatted according to Rust formatting rules - Run
cargo clippy
to make sure it passes all the lints defined. Clippy is also a great tool for learning new tips and tricks in Rust! - Run
cargo test
and make sure it passes all the tests you wrote - Submit your Pull Request for review.
Remember, the goal is to create fun, educational challenges for the Rust community! 🎓
Start coding, start learning, and most importantly, have fun with Rust! 🎊
Happy coding, Rustaceans! 🦀
Join our Discord community to discuss ideas, get support, ask questions, and get guidance on launching your Byte! Coreyja Club