Network Programming with Rust
- Builds a solid foundation in Rust while also indulging in important network programming details
- Leverage the power of a number of available libraries to perform network operations in Rust
- Develop a fully functional webserver to gain the skills you need, fast
Rust has steadily become one of the most important new programming languages in recent years. Like C or C++, Rust enables developers to write code that is low level enough which makes Rust code fast. And since Rust is memory-safe by design, it does not allow code that can crash on a null pointer exception. These properties make it a natural choice for writing low level networking applications. This book will enable developers to get started with writing networking applications with Rust.
This book will be divided in three main parts that will take you on an exciting journey of building a fully functional webserver. The book starts with a solid introduction to Rust and essential networking concepts. This will lay the foundation and the tone for the entire book. It dives deep into details of using Rust for networking software. Starting with client-server networking using sockets to IPv4/v6, DNS, TCP, UDP, you will also learn about serialising and deserialising data using serde. The book shows how to communicate with REST servers over HTTP and implement asynchronous network programming using Tokio stack. Given the importance of security for modern systems, you will see how Rust supports common primitives like TLS and public key cryptography.
After reading this book, you will be confident to use Rust to build effective networking software.
What you will learn
- Appreciate why networking is important in implementing distributed systems
- Write a non-asynchronous echo server over TCP that talks to a client over a network
- Parse JSON and binary data using parser combinators like nom
- Write a HTTP client that talks to the server using reqwest
- Modify an existing Rust HTTTP server and add SSL to it
- Asynchronous programming support in core Rust
- How to use external packages in a Rust project