I’m currently going through the process of teaching myself Rust as a fun summer project, especially since it’s different enough from the Java/Spring stack I use at work regularly. What are some interesting projects I can work on in Rust to get some familiarity with how the language works, and get an idea of some of the libraries I can use with it?

  • mifuyne@beehaw.org
    link
    fedilink
    English
    arrow-up
    9
    ·
    1 year ago

    If you’re not opposed to books and have an interest in gamedev as well, then maybe give Hands-on Rust a shot. After some basics, it covers building a dungeon crawler (roguelike).

    Admittedly, I own a copy but I haven’t had the chance to go through it yet. I’ve heard positive things about it, though. Might start soon, wanting to get more in-depth with Rust myself recently.

    • 0xSim@fedia.io
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      The same author also has a free tutorial here. The ECS library used in it is a bit dated, and it’s a good idea to follow the tutorial but use a more modern one (like hecs, or bevy_ecs if you’re feeling more comfortable in rust)

    • BinaryEnthusiast@beehaw.orgOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Huh that’s a pretty solid looking book. I did a quick glance through the chapter list online, and there is a fair amount of content in that. A solid book like that may be good for me to check out as well

  • Yoru_Sulfur@lemmy.davidbuckley.ca
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year ago

    I like to start out any new language with an implementation of Conway’s Game of Life. It’s relatively simple, but tends to exercise a decent bit of the language.

    • Bardak@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Seems like a good way to play around with multithreading, SIMD and even shaders if you wanted to.

    • BinaryEnthusiast@beehaw.orgOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      You know, I’ve never implemented Conway’s game of life, and that sounds like an excellent way to work on a new language

  • pimeys@lemmy.nauk.io
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    1 year ago

    Rust really shines with parsers and generators. They are easy enough and fun to write. Maybe write a lisp with it? Or a prettifier for your favorite language…

    If you go with a parser, this one is an interesting crate to start messing around with:

    https://github.com/maciejhirsz/logos

    • BinaryEnthusiast@beehaw.orgOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      Huh interesting, Parsing is always a fun exercise for learning some language features. I may try that out then for a good starting project. Thanks!

  • donio@beehaw.org
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    For me “scratch your own itch” is what works best for keeping up the motivation. Think of a tool or service that you’ll actually want to use yourself and implement that in the language you are learning. Or create a better version of an existing tool that you regularly use.

  • pinkpatrol@anarch.is
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    For my own projects I’m trying to build things I actually want. Tools for myself. But now the hard part becomes identifying a tool you wish you had, and scoping it down enough so that it’s appropriately sized for a new language. Tricky to approach the task from two ends.

    • Nooch@beehaw.org
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Yes! An example: I needed to start a journal to write my thoughts, therapist’s orders. Also wanted to learn kivy and write a basic app for android. So I wrote a little journal app for myself to make me want to journal, and i learned the basics of kivy framework! Sorry its not a rust example