Ebook: Programming WebAssembly with Rust: Unified Development for Web, Mobile, and Embedded Applications
Author: Kevin Hoffman
- Year: 2019
- Publisher: Pragmatic Bookshelf
- Edition: 1
- Language: English
- epub
Adopt the Rust programming language by learning how to build fully functional web applications and services and address challenges relating to safety and performance
Key Features
- Build scalable web applications in Rust using popular frameworks such as Actix, Rocket, and Warp
- Create front-end components that can be injected into multiple views
- Develop data models in Rust to interact with the database
Book Description
Are safety and high performance a big concern for you while developing web applications?
While most programming languages have a safety or speed trade-off, Rust provides memory safety without using a garbage collector. This means that with its low memory footprint, you can build high-performance and secure web apps with relative ease.
This book will take you through each stage of the web development process, showing you how to combine Rust and modern web development principles to build supercharged web apps.
You'll start with an introduction to Rust and understand how to avoid common pitfalls when migrating from traditional dynamic programming languages. The book will show you how to structure Rust code for a project that spans multiple pages and modules. Next, you'll explore the Actix Web framework and get a basic web server up and running. As you advance, you'll learn how to process JSON requests and display data from the web app via HTML, CSS, and JavaScript. You'll also be able to persist data and create RESTful services in Rust. Later, you'll build an automated deployment process for the app on an AWS EC2 instance and Docker Hub. Finally, you'll play around with some popular web frameworks in Rust and compare them.
By the end of this Rust book, you'll be able to confidently create scalable and fast web applications with Rust.
What you will learn
- Structure scalable web apps in Rust in Rocket, Actix Web, and Warp
- Apply data persistence for your web apps using PostgreSQL
- Build login, JWT, and config modules for your web apps
- Serve HTML, CSS, and JavaScript from the Actix Web server
- Build unit tests and functional API tests in Postman and Newman
- Deploy the Rust app with NGINX and Docker onto an AWS EC2 instance
Who this book is for
This book on web programming with Rust is for web developers who have programmed in traditional languages such as Python, Ruby, JavaScript, and Java and are looking to develop high-performance web applications with Rust. Although no prior experience with Rust is necessary, a solid understanding of web development principles and basic knowledge of HTML, CSS, and JavaScript are required if you want to get the most out of this book.
Table of Contents
- Quick Introduction to Rust
- Designing Your Web Application in Rust
- Handling HTTP Requests
- Processing HTTP Requests
- Displaying Content in the Browser
- Data Persistence with PostgreSQL
- Managing User Sessions
- Building RESTful Services
- Testing Our Application Endpoints and Components
- Deploying Our Application on AWS
- Understanding Rocket Web Framework
- Appendix A: Understanding the Warp Framework
WebAssembly fulfills the long-awaited promise of web technologies: fast code, type-safe at compile time, execution in the browser, on embedded devices, or anywhere else. Rust delivers the power of C in a language that strictly enforces type safety. Combine both languages and you can write for the web like never before! Learn how to integrate with JavaScript, run code on platforms other than the browser, and take a step into IoT. Discover the easy way to build cross-platform applications without sacrificing power, and change the way you write code for the web.
WebAssembly is more than just a revolutionary new technology. It’s reshaping how we build applications for the web and beyond. Where technologies like ActiveX and Flash have failed, you can now write code in whatever language you prefer and compile to WebAssembly for fast, type-safe code that runs in the browser, on mobile devices, embedded devices, and more. Combining WebAssembly’s portable, high-performance modules with Rust’s safety and power is a perfect development combination.
Learn how WebAssembly’s stack machine architecture works, install low-level wasm tools, and discover the dark art of writing raw wast code. Build on that foundation and learn how to compile WebAssembly modules from Rust by implementing the logic for a checkers game. Create wasm modules in Rust to interoperate with JavaScript in many compelling ways. Apply your new skills to the world of non-web hosts, and create everything from an app running on a Raspberry Pi that controls a lighting system, to a fully-functioning online multiplayer game engine where developers upload their own arena-bound WebAssembly combat modules.
Get started with WebAssembly today, and change the way you think about the web.