Rust Programming
Target Audience
- This is a beginner course suitable for anyone wanting to use Rust for developing libraries or applications.
Prerequisites
- Basic programming background in either a high-level language such as C, Java or a scripting language such as Shell, VBSscript, Javascript, Perl, PHP or Ruby
Objectives
- To be able to write programs in Rust.
- To master the rich set of Rust libraries (crates).
Course Format
- Duration of the course is 24 academic hours. (3 full days).
- The course includes approximately 40% hands on lab work.
Syllabus
- Rust
- Installing Rust
- Why use Rust?
- Cargo - the package and dependency manager of Rust
- Hello World
- Primitives - basic types in Rust
- Variables, mutability
- Control flow
- Understanding memory safety, ownership and borrowing
- They type system of Rust
- Error handling
- Special types: Option, Result
- Vectors
- Structs
- Enums
- Threading
- Creating libraries in Rust
- Generics and Traits
- Variable lifetime
- Smart pointers
- Dependency management
- Backword compability
- Testing your code
- Distributing executables for multiple platforms (CI/CD, cross compilation)
- Relevant Computer Science topics
- Data embedded in the source code
- What is the Stack, Heap
- Pointers
- Memory management
- Manual memory managemen with allocation and freeing
- Refernce counting
- Garbage collection
- Compiled vs. Interpreted languages
- Statically type vs. dynamically typed languages
- Loosly typed vs strongly typed
- Functiona programmin in Rust
- Iterators
- Closures
- Function pointers
- Concurrency with async programming
- The liquid Templating system
- CLI - Command line applications in Rust
- Building API in Rust
- Handling well-knonw file formats
- JSON
- YAML
- CSV
- Macros
- Unsafe Rust and FFI - Foreign Function Interface
Contact
Contact: Gabor Szabo gabor@hostlocal.com
Phone: +972-54-4624648