These optional training courses are available for developers of all skill levels. Add them to your ticket when you register to attend.
Overview
Morning 9:00am–12:00pm | RustBridge | Rust for Beginners | Embedded Introduction | ||
---|---|---|---|---|---|
Afternoon 1:00pm-4:00pm | Traits and Threads | Embedded Introduction | Game Development | Webassembly | Async |
Course details
- 9:00am4:00pm
Present
RustBridge
This free workshop is for people who are members of groups that are underrepresented in tech, in the style of RailsBridge. There will be a morning introduction to Rust concepts and an afternoon hands-on project. This class assumes no prior knowledge of Rust, but familiarity with any other programming language, the command line, and a text editor is recommended.
Lunch is not provided. Participants should bring their own laptops. Additional machine setup instructions will be sent ~1 week prior to the training.
RoomD134
- 9:00am12:00pm
Presents
Rust for Beginners
Learn everything you need to get started writing Rust programs. The tutorial puts a focus on Ownership and Borrowing, which are the key techniques that Rust uses to achieve both safety and low-level performance.
This class assumes no prior knowledge of Rust, though programming experience in some other language would be helpful.
Participants should bring their own laptops. Additional machine setup instructions will be sent ~1 week prior to the training.
RoomD136Present
Embedded Introduction
This training is aimed at developers who are familiar with Rust and/or embedded systems, and are looking to learn more about embedded Rust. The exercise driven class will provide a guided experience of writing embedded application code and is divided into two segments.
The first segment lets students get to know their hardware and the embedded Rust tooling. They will take an existing template project and gain familiarity with building, running, and debugging an embedded application. The goal is to blink the onboard LEDs and eventually create blinking patterns.
For the second segment, a color grid will be displayed on the presenter's projector screen, and each student will be given a portion of the total grid that they may remotely draw on by sending radio packets. This involves using the BSP interface and learning about serde and automatic serialisation of Rust data structures. Patterns, such as gradients, shapes, letters or simple animations can be drawn.
Participants should bring their own laptops. Additional machine setup instructions will be sent ~1 week prior to the training.
Hardware Requirements: This class requires the Limited DWM1001-DEV/1479-1005-ND Development Kit/Board. Students can purchase their hardware directly and bring it along (but don't forget!) or purchase as a merchandise addon with registration.
RoomD139
- 1:00pm4:00pm
Presents
Traits and Threads
Move your Rust knowledge up a level! This tutorial introduces the second key piece of Rust, its trait system. You’ll learn how the trait system is the foundation for generic programming in Rust, allowing you to write one piece of code that can be reused in many contexts. The session will also cover how to write threaded programs in Rust, and demonstrate how threaded programming in Rust builds on the trait system to guarantee data-race freedom.
This tutorial assumes basic understanding of ownership and borrowing; if you have been writing Rust for a while, you should do fine.
Participants should bring their own laptops. Additional machine setup instructions will be sent ~1 week prior to the training.
RoomD137Presents
Embedded Introduction
This training is aimed at developers who are familiar with Rust and/or embedded systems, and are looking to learn more about embedded Rust. The exercise driven class will provide a guided experience of writing embedded application code and is divided into two segments.
The first segment lets students get to know their hardware and the embedded Rust tooling. They will take an existing template project and gain familiarity with building, running, and debugging an embedded application. The goal is to blink the onboard LEDs and eventually create blinking patterns.
For the second segment, a color grid will be displayed on the presenter's projector screen, and each student will be given a portion of the total grid that they may remotely draw on by sending radio packets. This involves using the BSP interface and learning about serde and automatic serialisation of Rust data structures. Patterns, such as gradients, shapes, letters or simple animations can be drawn.
Participants should bring their own laptops. Additional machine setup instructions will be sent ~1 week prior to the training.
Hardware Requirements: This class requires the Limited DWM1001-DEV/1479-1005-ND Development Kit/Board. Students can purchase their hardware directly and bring it along (but don't forget!) or purchase as a merchandise addon with registration.
RoomD139Presents
Game Development
This workshop will walk you through creating a very simple game using the Rust programming language. You will learn the basics of game development and see how to put together various Rust libraries in order to create something that you can play. The game will be built incrementally so that you understand each of the smaller steps needed to produce a complete game. By the end of the workshop, you will have a small project that you can build on to add as many cool features as you want! Some of the topics covered during the workshop include: game loops, basic 2D rendering, Entity-Component-Systems (ECS), and much more!
No prior experience with game development is required and any game development concepts you need will be taught throughout the workshop. You will however need to be somewhat comfortable writing simple Rust programs. The workshop will not directly use advanced features of the Rust language, but you will be implementing some traits, so try to come in comfortable with that. Chapters 1 - 9 (and parts of Chapter 10) of the Rust book cover everything you need.
RoomD135Presents
Webassembly
In this workshop we'll walk you through a practical introduction to writing Rust-generated WebAssembly. We'll start from a basic Rust crate and work towards compiling, packaging, and publishing it to npm. From their we'll work on integrating our WebAssembly with other JavaScript code, bundling it for the browser with WebPack. Along the way we'll touch on important best practices for testing, debugging, and profiling your WebAssembly code.
RoomD136Present
Async
Rust is great for writing async code. But what async code should you write?
This workshop will take this question and introduce you to basic async patterns and how to apply them in Rust. It will guide you through async programming concepts and give you a glimpse into constructing larger, concurrent applications out of the basic elements. It will introduce you to tasks, threads, evented IO and how Rust manages all the hard bits. Other topics include async testing and how to come up with new, high-level abstractions.
RoomD133
After training
Unofficial Event
Rust Development & Blockchain
Join speakers from Mozilla, Oasis Labs and Solana as they explore the present and future of Rust-based blockchain development.
Learn more at Eventbrite