Open Source Bytes: Rust Games ๐ŸŽฎ

Welcome to Open Source Bytes, a collection of fun and educational Rust games! ๐Ÿฆ€

Play the Bytes on here!

๐Ÿ“šTL:DR

  • 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!

Bytes Demo

๐Ÿค Contribute

Build small Rust CLI projects! Just make sure you follow these rules:

  1. Be unique ๐ŸŒŸ
  2. Code must compile! โœ…
  3. Add Tests to your code ๐Ÿงช
  4. Make it short and sweet! We want other students to be able to read and understand these in one go ๐Ÿ’ช

๐Ÿ’ก Example Bytes

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.

๐Ÿš€ Getting Started

If you have an idea for a new Byte and want to discuss it before writing code, you can start by opening an issue:

  1. Open an Issue for Brainstorming

    • Navigate to the Issues tab.
    • Click on New Issue and select the Brainstorming label.
    • Describe your idea in detail to allow others to provide feedback and suggestions.
    • See an example of a brainstorming issue here
  2. Collaborate and Refine

    • Engage with the community by responding to comments.
    • Refine your idea based on the feedback received.
  3. Proceed to Implementation

    • Once your idea is well-defined, follow the steps below to build your Byte.

๐Ÿง‘โ€๐Ÿ’ป How to Build a Byte

Fork and Clone the Repository

  1. Fork the repository: https://github.com/coreyja/crowd-source-bytes
  2. Clone your forked repository:
    git clone https://github.com/YOUR_USERNAME/crowd-source-bytes.git
    cd crowd-source-bytes
    
  3. 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

  1. Create a new Rust project for your byte:
    cargo new <name-of-your-byte>
    
  2. Add the name of your project to the members list in the root Cargo.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
  3. Navigate to your new byte project:
    cd <name-of-your-byte>
    
  4. Open src/main.rs and write your code for your byte.

๐ŸŽ‰ Prepare Your Contribution

Submit a Pull Request

  1. Commit your changes:
    git add .
    git commit -m "Add <name-of-your-byte> Byte"
    
  2. Push your changes to your fork:
    git push origin <your-name>/main/<name-of-byte>-byte
    
  3. Write a description of your Byte and instructions on how to run it locally.
  4. Add test cases to the tests/ directory.
  5. Create a test plan for your Byte, including:
    • A description of the test plan
    • Expected output
  6. Leave comments in the diff indicating where you want the "bug" to be ๐Ÿž
  7. Run cargo fmt to make sure your code is formatted according to Rust formatting rules
  8. 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!
  9. Run cargo test and make sure it passes all the tests you wrote
  10. Submit your Pull Request for review.

Remember, the goal is to create fun, educational challenges for the Rust community! ๐ŸŽ“

๐ŸŽŠ Join the Fun

Start coding, start learning, and most importantly, have fun with Rust! ๐ŸŽŠ

Happy coding, Rustaceans! ๐Ÿฆ€

๐Ÿค Connect with Us

Join our Discord community to discuss ideas, get support, ask questions, and get guidance on launching your Byte! Coreyja Club