Course Second Part: Project in Rust
Pierre Cochard, Tanguy Risset
Project Rules
- The project can be for a single student, or a group of at most 2 students
- The Rust code should be written by you, it means:
- no copy/paste from existing code
- LLM help is OK but only for correcting a code that you wrote
- The projet should illustrate one or several Rust concept or mechanism
- An open source github repository should be set up for the project and communicated to the teacher. This git repository will be used by the teacher to follow project evolution
Project life
- The project is first validated by teachers
- Teachers will not answer questions by mail, they will answer questions during course slots.
- During the project period, students are free to develop whenever and wherever they want: teacher will be present at course slots but student presence is not mandatory, except for Final Project presentation : Wednesday 21/01/2026 14h-18h
- There will be a Mid-term project check on Wednesday 14/10/2026 14h-16h at that point you should have send us your github site and a roadmap (text of 1/2 page) for your project
Evaluation
-
The final presentation (Wednesday 21/01/2026 14h-18h) should take 15mn per project:
- 4-6 mn slide presentation
- 4-6 mn demo
- 4-6 mn questions (from teachers and other students)
-
The project will be evaluated following criteria:
- Amount of work estimated
- Overall quality of the code and the demo
- Code readability and documentation
- Adequation between the announced project and the final result
- Quality of the final presentation
-
During the slide presentation, we do not need a very complete presentation of the code (we can see it on the github site), we need a description of the application, of the Rust crates used and we except you to give you feeling about what's different with Rust:
- What helped you?
- What were the obstacles?
- What did you like?
- What did you not like?
- Will Rust become you favourite language?
A few audio examples:
- Audio example with the
jackcrate: https://gitlab.inria.fr/emeraude/5tc-rust/-/tree/main/audio-examples?ref_type=heads - Audio & network example with
cxx-juce: https://gitlab.inria.fr/emeraude/5tc-rust/-/tree/main/network-examples?ref_type=heads
Example of Project ideas
Networking (Crates: tokio, websocket, ...)
- Chat system in Rust
- peer-to-peer in Rust
Audio (Crates: cpal, jack (linux), cxx-juce, portaudio, ...ask us!)
- Audio streaming in Rust
- Synthesizer/effect in Rust
GUI/TUI (Crates: egui, dioxus, cxx-qt, ratatui, cursive)
- Web app with UI
- Gome with UI
Benchmark (Crates: criterion, divan, hyperfine, ...)
- compare Rust and C performance
- efficiency of thread vs. Async
Explore Rust Crates
- provide pedagogical use of original Crates
Document design
- inspired from typst