Book description
Use the Rust programming language to build fully functional web applications with async Rust to amplify security and boost the performance of your programs
Key Features
- Work with cutting-edge web techniques such as distroless Rust servers, Terraform, and AWS deployment
- Get acquainted with async concepts such as actors and queuing tasks using lower-level frameworks like Tokio
- Build a full web application in Rust with a database, authentication, and frontend
Book Description
Are safety and high performance a big concern for you while developing web applications?
With this practical Rust book, you’ll discover how you can implement Rust on the web to achieve the desired performance and security as you learn techniques and tooling to build fully operational web apps.
In this second edition, you’ll get hands-on with implementing emerging Rust web frameworks, including Actix, Rocket, and Hyper. It also features HTTPS configuration on AWS when deploying a web application and introduces you to Terraform for automating the building of web infrastructure on AWS. What’s more, this edition also covers advanced async topics. Built on the Tokio async runtime, this explores TCP and framing, implementing async systems with the actor framework, and queuing tasks on Redis to be consumed by a number of worker nodes. Finally, you’ll go over best practices for packaging Rust servers in distroless Rust Docker images with database drivers, so your servers are a total size of 50Mb each.
By the end of this book, you’ll have confidence in your skills to build robust, functional, and scalable web applications from scratch.
What you will learn
- Structure and build scalable Rust web apps by creating a basic to-do list web app
- Manage authentication and databases in Rust web applications
- Get to grips with wrapping web applications in distroless
- Understand the building blocks of web development such as HTTPS, TCP, and middleware
- Build app infrastructure on AWS using Terraform with databases, servers, load balancers, HTTPS, and URL routing
- Build end-to-end tests using Postman
- Build async systems implementing the actor model using Tokio
Who this book is for
This Rust programming book is for web developers who want to learn and implement Rust to build web applications. Developers familiar with languages such as Python, Ruby, and JS will be able to use this book to build high performant web apps with Rust. Although no prior experience in Rust is necessary, a solid understanding of web development principles, along with basic knowledge of HTML, CSS, and JavaScript, is necessary to get the most out of this book.
Table of contents
- Rust Web Programming
- Contributors
- About the author
- About the reviewers
- Preface
- Part 1:Getting Started with Rust Web Development
- Chapter 1: A Quick Introduction to Rust
- Chapter 2: Designing Your Web Application in Rust
- Part 2:Processing Data and Managing Displays
-
Chapter 3: Handling HTTP Requests
- Technical requirements
- Introducing the Actix Web framework
- Launching a basic Actix Web server
- Understanding closures
- Understanding asynchronous programming
- Understanding async and await
- Exploring async and await with web programming
- Managing views using the Actix Web framework
- Summary
- Questions
- Answers
- Further reading
- Chapter 4: Processing HTTP Requests
-
Chapter 5: Displaying Content in the Browser
- Technical requirements
- Serving HTML, CSS, and JavaScript using Rust
- Injecting JavaScript into HTML
- Injecting CSS into HTML
- Inheriting components
- Creating a React app
- Making API calls in React
- Creating custom components in React
- Lifting CSS into React
- Converting our React application into a desktop application
- Summary
- Questions
- Answers
- Further reading
- Part 3:Data Persistence
- Chapter 6: Data Persistence with PostgreSQL
- Chapter 7: Managing User Sessions
- Chapter 8: Building RESTful Services
- Part 4:Testing and Deployment
- Chapter 9: Testing Our Application Endpoints and Components
- Chapter 10: Deploying Our Application on AWS
- Chapter 11: Configuring HTTPS with NGINX on AWS
- Part 5:Making Our Projects Flexible
-
Chapter 12: Recreating Our Application in Rocket
- Technical requirements
- What is Rocket?
- Setting up our server
- Plugging in our existing modules
- Implementing Rocket traits
- Plugging in our existing views
- Returning status with JSON
- Returning multiple statuses
- Registering our views with Rocket
- Plugging in our existing tests
- Summary
- Further reading
- Questions
- Answers
-
Chapter 13: Best Practices for a Clean Web App Repository
- Technical requirements
- The general layout of a clean repository
- Getting our configuration from environment variables
- Setting up a local development database
- Managing variables in Postman tests
- Building distroless tiny server Docker images
- Building a clean test pipeline
- Building continuous integration with GitHub Actions
- Summary
- Further reading
- Questions
- Answers
- Part 6:Exploring Protocol Programming and Async Concepts with Low-Level Network Applications
- Chapter 14: Exploring the Tokio Framework
- Chapter 15: Accepting TCP Traffic with Tokio
- Chapter 16: Building Protocols on Top of TCP
- Chapter 17: Implementing Actors and Async with the Hyper Framework
- Chapter 18: Queuing Tasks with Redis
- Index
- Other Books You May Enjoy
Product information
- Title: Rust Web Programming - Second Edition
- Author(s):
- Release date: January 2023
- Publisher(s): Packt Publishing
- ISBN: 9781803234694
You might also like
book
Rust Web Programming
Adopt the Rust programming language by learning how to build fully functional web applications and services …
book
Programming WebAssembly with Rust
WebAssembly fulfills the long-awaited promise of web technologies: fast code, type-safe at compile time, execution in …
book
Practical System Programming for Rust Developers
Explore various Rust features, data structures, libraries, and toolchain to build modern systems software with the …
book
Rust Web Development
Create bulletproof, high-performance web apps and servers with Rust. In Rust Web Development you will learn: …