Overview
This course teaches how to develop a scalable real-time video analysis pipeline in Rust using GStreamer and Pravega. The learning outcomes include understanding the challenges of creating such a pipeline, integrating Pravega, GStreamer, and Rust, leveraging Rust's language features for complexity management, and learning development patterns. The course covers individual skills such as using GStreamer for real-time video processing, implementing a streaming data storage system with Pravega, and utilizing Rust for managing complexity. The teaching method is a case study based on a real-world application, and the intended audience includes developers interested in video analysis, real-time processing, and Rust programming.
Syllabus
Intro
Gstreamer
Benefits of a streaming architecture
Pravega design
End to end pipeline
Demo
Software Values
Rust's values
The usual narrative
Our problem
Client design
What's in a method signature?
Thinking about ownership
Rust doesn't need the visitor pattern
Using the type system to enforce invariants - 3
Problems we faced
The reactor pattern
The async reactor pattern
What we came to love
Tools for error handling, tracing, and debugging
Taught by
Strange Loop Conference