Real time web applications in Rust

Full-stack web development with Rust and websockets

WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The WebSocket protocol enables interaction between a web browser (or other client application) and a web server with lower overhead than half-duplex alternatives such as HTTP polling, facilitating real-time data transfer from and to the server.

What you’ll learn

  • Creating websocket clients with yew.
  • Creating websocket servers with rocket.
  • Sharing Rust code between server and client.
  • Building a chat frontend with yew.

Course Content

  • Introduction –> 3 lectures • 7min.
  • Backend –> 5 lectures • 53min.
  • Frontend –> 4 lectures • 45min.
  • JSON messages –> 3 lectures • 24min.
  • Chatroom users list –> 3 lectures • 44min.
  • Changing usernames –> 4 lectures • 1hr 1min.
  • System messages –> 2 lectures • 15min.

Auto Draft

Requirements

WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The WebSocket protocol enables interaction between a web browser (or other client application) and a web server with lower overhead than half-duplex alternatives such as HTTP polling, facilitating real-time data transfer from and to the server.

Rust is a systems programming language which you can use to write applications with high performance. It is amazingly refreshing with a very helpful compiler who is your mentor since the very beginning.

 

Given that the WebSocket protocol is key for real-time applications, where reliability and speed matter, it is no wonder that Rust is the best option for implementing WebSocket servers.

Also given that Rust can now run in the browser, thanks to WebAssembly, we can also use Rust on the client.

Which means that one can code a real-time, chat-like application 100% in just Rust!

 

This is what we will do in this course! We will leverage Tokio and Rocket in the back-end, yew webassembly and trunk in the front-end and we will end up with a full-stack Rust, real-time chat app. While doing that we will learn how to set-up a WebSocket connection, send/receive messages and update out application state.