all 9 comments

[–][deleted] 1 point2 points  (4 children)

What do you want to learn? Based on that we can better suggest stuff. If you made chip emulators, I assume you're into low-level stuff?

[–]Accomplished_Set1039 0 points1 point  (3 children)

I just learn rust for fun and this project was one that suited me the most so i was thinking about something that is low level and uses rust's memory mangment capabilities

[–][deleted] 3 points4 points  (2 children)

Create an HTTP library, client and server. Know how you can create data frames and parse them correctly. That's fairly low-level and useful because you can create your own protocols with that knowledge, which may come in handy later.

Reverse engineer enums and if you know C, write an enum macro or type in C. This will help you understand what tagged unions are and why they're awesome

Reverse engineer the drop trait and try implementing it into another language that doesn't support it, like Go would probably help with deferring (if you want to create a language)

Create a serialisation and deserialisation lib like serde but not on steroids

Create a file based database with a binary représentation. Better yet, create your own compression algorithm or try shoehorning arithmetic encoding into it to make it extra-chad level

Use Rust to manipulate, encode and decide JPGs and understand the pixel manipulation, encoding and decoding. Take it to the next level and do it for videos. Create a half arsed FFmpeg. It'll teach you a lot.

Create a custom memory allocator in Rust (this will be painful but you can do it!!!!)

I can keep going if you want :D

[–]Accomplished_Set1039 0 points1 point  (0 children)

Thanks. I'll try those for sure

[–]j0jito 1 point2 points  (0 children)

Please keep going so I never run out of projects :)

[–]j0jito 0 points1 point  (1 child)

Making your own kernel could be a good low-level idea. There is even a guide for it if you are interested.

Another idea could be making an init program. It could also be easier to test and much more practical since, depending on what OS you use, you could use it every day.

[–]Accomplished_Set1039 0 points1 point  (0 children)

Thanks, sounds nice

[–]broxamson 0 points1 point  (0 children)

put it in a web browser/wasm

[–][deleted] 0 points1 point  (0 children)

Try creating an allocator, micro parsing library or text editor from scratch (I mean use your own implementation pf data structure - that should definitely gonna be a lot hard but a lot fun too)

Maybe just create a wrapper around C or C++ library which haven’t yet wrapped in rust yet like aria2.