This course will teach you the fundamentals of Rust, a modern programming language blazingly fast, memory-efficient, memory-safe and thread-safe that enables you to eliminate many classes of bugs at compile-time. Rust can power performance-critical services, run on embedded devices, and easily integrate with other languages.
This training is available as "onsite live training" as well as "remote live training".
Languages: French, English
Why take this course
This course combines hands-on exercices (about 60%) with concept understanding and theory (about 40%) and can be adapted to the learner's needs. By the end you will become autonomous in developping Rust applications.
On successfull completion of this course, you will receive an instructor-signed certificate with the institution's logo.
What you'll learn
- Think as a rustacean.
- Write idiomatic Rust code.
- Compile and test your code.
- Choose the appropriate data structure.
- Use the documentation and most common libraries.
- Understand Rust's strengths and weaknesses.
- Become autonomous: start designing and implementing your first application in Rust.
- Basic programming experience.
- Knowledge of Linux/Unix environment.
Course syllabusModule 1 - Introduction
- How is Rust different?
- Execution time
- Error management
- Programming paradigms
- Primitive types
- Variables an mutability
- Control flow
- Structured data types
- Enumerations (enum, match, Option)
- References and Borrowing
- Types that contain references
- Collections (String, Vec, HashMap)
- Error management (Result, propagation, panic)
- Generic types
- Trait bounds
- Standard traits
- Operator overloading
- Installing and configuring Rust (rustup, system packages)
- Using the compiler and build system (rustc, cargo)
- The Cargo package manager (cargo and crates.io)
- Unit testing
- Documentation: rustdoc
- Environments and IDE
- Inter-thread communication
- Data sharing
- Trait Send and Sync
- Using C/C++ code inside Rust
- Using Rust code inside C/C++
- Unsafe Rust
- Serializing using serde
- Non-blocking IO using tokio
- Querying databases
- Web server
Meet your instructor
Laurent Wouters is co-founder of Cénotélie and a dedicated researcher and trainer. He
has been coding actively in Rust for several years, in particular, to develop a software for
crop management using satelite images processing. It is a complex application with a backend entirely
written in Rust.
Laurent is an active contributor to other open projects, like Hime, for which he has also developed the Rust runtime.
He holds a PhD in the Theory of languages. As a researcher, he was particularly interested in understanding how languages and semantics can contribute to efficient digital collaboration and complex systems engineering. He gained a strong teaching experience as a teaching assistant in top universities in Paris, including Ecole Centrale de Paris.