Rust Programming
Online Live Sessions
Fees ₹29,500 + GST ₹5310
Ongoing Class
Duration
4 months
Start Date
29th June 2024
End Date
27th October 2024
Timings
9.00 am to 11.00 am
Days
Sat/Sun
Syllabus
Prerequisite : Familiarity with C/C++ and pointers
Introduction
Setting up Rust Environment
VS code
rustc
Cargo
Building
Packaging.
Foundations
Fundamentals - Turing, Church, Shannon
Values
Operators
Statements/Expressions
Variables
Types
Structured Programming
Selections
if else
match
Loops
for
while
loop
while let
Functions
Function Definitions
Parameters
Return types
Activation Records
Generic Functions
Functions with Lifetimes
Async Functions
Ownership and Borrowing
Move
Copy
Cloning
References
Mutable References
Shared References
Interior Mutability
Cell and RefCell
Slices
Array Slices
String slices
Smart Pointers
Box<T>
Rc<T>
Arc<T>
Lifetimes
Object Oriented Programming.
Algebraic Data Types
Struct
Unit Struct
Tuple Struct
Normal Struct
Generic Struct
Enum
Unit Variants
Struct Variants
Tuple Variants
Generic Enum
impl
Associated Functions
&mut self Function
&self Functions
self Functions
Type-Associated Functions
Constants in impl
Self type
Traits
Trait Methods
Associated Type
Generic Traits
Trait Object
Generic Functions
Self Type
Associated Functions
Subtraits
Associated Constants
Implementing traits for Types
Orphan Rule
Fully Qualified Method Calls
Extension Traits
impl Trait
Utility Traits
Drop
Sized
Clone
Copy
Deref and DerefMut
Default
AsRef and AsMut
Borrow and BorrowMut
From and Into
TryFrom and TryInto
ToOwned
Generics
Trait Bounds
where clause
Operator Overloading
Unary Ops
Arithmetic Ops
Bitwise Ops
Compound Assignment Arithmetic Ops
Compound Assignment Bitwise Ops
Comparison Ops
Indexing
Functional Programming.
Immutability
First Class Functions
Higher Order Functions
Closures
FnOnce
FnMut
Monad
Pattern Matching
Binding with Subpattern
Enum Pattern
Tuple Pattern
Ref Pattern
Range Pattern
Array Pattern
Slice Pattern
Struct Pattern
Or patterns
Guard Expression
Refutable Patterns
Irrefutable Patterns
Option and Result
? Operator
.unwrap()
.expect()
.unwrap_or()
.unwrap_or_default()
.is_ok()
.is_err()
Iterator
Iterator Trait
IntoIterator Trait
Modular Programming
Modules
mod
pub
sub-modules
files and directories
Crates
binary
library
static
shared
Packages
Dependency Management
Cargo.toml
Meta Programming
Declarative Macros
Procedural Macros
Attribute Macros
Hygiene and Macro Context
DSL
Collections
Vec<T>
HashMap<K,V>
HashSet<T>
VecDeque<T>
Concurrent Programming.
Concurrent v/s Parallel
Threads
Channels
Mutex and Read/Write Locks
Condition Variables, Barriers
Lock Free, Wait Free
ThreadSafe DataStructures
Rayon
Actix
Actors
Messages
Handling States
Asynchronous Programming
Continuations - CPS
Futures
Async/Await
Async blocks
Tasks
Tokio
Reactors
Workers
Schedulers
Timers
Pinning
Pinned Pointers
Unpin Trait
I/O Programming
Read
BufRead
Write
File Handling
Networking
Serialization/Deserialization
Web Programming
Actix-Web
Request, Response,State
Routers
Middleware
Web-Sockets
RESTful API
Hyper
SQLx
HTMX
Projects
Concurrent Server
Login Framework