---
# System prepended metadata

title: Rust 101 final project

---

# Rust 101 final project

It is time to submit a proposal for the final project 

- Form groups of 2 or 3 people
- Build a small rust project
- up to 2 groups can work on the same topic

The proposal needs to be submitted by TODO by TODO

Af the end of the project following will be required (deadline is TODO)

- the source of your project (e.g. on github)
- a small report on what you did (3 pages max)
- a live 10 minute presentation (and an additional 2 minutes for questions) during the final lecture  

## Project suggestions

You are encouraged to suggest your own project, here are some suggestions 

- use a popular crate to build something 
    - tokio (network applications) 
    - bitvec (lowlevel binary protocols)
    - bevy (games)
- build a GUI application (https://www.areweguiyet.com/)
- implement a more complex data structure 
    - implement and benchmark a doubly linked list
    - benchmark the ntpd-rs ipfilter https://github.com/pendulum-project/ntpd-rs/blob/main/ntp-daemon/src/ipfilter.rs
    - add "seamless slices" to the rust implementation of `RocList` (ask Folkert)
- Programming languages
    - an interpreter for False (https://strlen.com/false-language/)
    - an interpreter for (a subset of) webassembly
    - contribute to Roc (Folkert will help you)
- make an open source contribution
    NOTE: make sure your contribution has a good chance of being accepted; don't just create extra work for project maintainers 
    - update inkwell's kaleidoscope example so it also works with llvm 15 https://github.com/TheDan64/inkwell/blob/master/examples/kaleidoscope/main.rs#L199
