Rust Servers, Services, and Apps


Book Description

Deliver fast, reliable, and maintainable applications by building backend servers, services, and frontends all in nothing but Rust. In Rust Servers, Services, and Apps, you’ll learn: Developing database-backed web services in Rust Building and securing RESTful APIs Writing server-side web applications in Rust Measuring and benchmarking web service performance Packaging and deploying web services Full-stack Rust applications The blazingly fast, safe, and efficient Rust language has been voted “most loved” for multiple consecutive years on the StackOverflow survey. Rust Server, Services, and Apps shows you why! Inside, you’ll build web servers, RESTful services, server-rendered apps, and client frontends just using Rust. You’ll learn to write code with small and predictable resource footprints, and build high-performing applications with unmatched safety and reliability. About the technology Build speedy, stable, and safe web servers in Rust! With a unique approach to memory management and concurrency, Rust excels at getting the low-level details right so your applications run fast and flawlessly. And Rust’s incredible compiler helps you avoid expensive mistakes when you’re deploying web services and other core components in production. About the book Rust Servers, Services, and Apps shows you how to create modern distributed web apps using the Rust language. You’ll start with the basics: building a simple HTTP server and a RESTful web service. Then, you’ll make them production ready by adding security, database interactivity, and error handling. Finally, you’ll tackle a digital storefront service, create a single page app, and dig into asynchronous programming. All examples are fully illustrated and include annotated code you can easily adapt to your own projects. What's inside Craft resilient and secure RESTful APIs Package and deploy web services Refactor fearlessly thanks to Rust’s guaranteed safety Slash costs with Rust’s runtime and compile-time optimizations Asynchronous programming with Rust About the reader For web developers who know the basics of Rust. About the author Prabhu Eshwarla is the CTO of a startup building a layer-1 blockchain using Rust. Previously, he held engineering and leadership roles at Hewlett Packard. Table of Contents PART 1 - WEB SERVERS AND SERVICES 1 Why Rust for web applications? 2 Writing a basic web server from scratch 3 Building a RESTful web service 4 Performing database operations 5 Handling errors 6 Evolving the APIs and fearless refactoring PART 2 - ERVER-SIDE WEB APPLICATIONS 7 Introducing server-side web apps in Rust 8 Working with templates for tutor registration 9 Working with forms for course maintenance PART 3 - ADVANCED TOPIC: ASYNC RUST 10 Understanding async Rust 11 Building a P2P node with async Rust 12 Deploying web services with Docker




Write Powerful Rust Macros


Book Description

An example-driven, step-by-step guide to success with Rust macros. In Write Powerful Rust Macros you’ll learn how to use these amazing metaprogramming tools to push Rust to its full potential. This hands-on guide takes you from the absolute basics to advanced macro techniques, exploring Rust macros through interesting and engaging examples. Inside Write Powerful Rust Macros you’ll discover: Writing declarative macros Procedural macros Reading and debugging macro code Improving the type system with newtypes and zero-sized types How common Rust libraries use macros Write Powerful Rust Macros teaches you how to write, test, debug, and publish macros for Rust. It’s perfect for Rust practitioners who want to master this powerful development technique. Build your knowledge chapter-by-chapter. You’ll start with declarative macros before diving into the real power: procedural macros that can generate code, augment data structures, and even create domain-specific languages. About the technology Macros are one of Rust’s most important and powerful tools. Although notoriously challenging, this metaprogramming technique has a big payoff. Using macros to generate new Rust code at compile-time can save you hours of tedious coding with negligible runtime performance impact. This book shows you exactly how to master this Rust superpower. About the book Write Powerful Rust Macros opens up the world of macros to intermediate Rust programmers. You’ll start with declarative macros to get the basics under your belt. Then, you’ll advance to procedural macros as you automatically generate a builder, learn to create your own domain-specific languages, and more. As you go, you’ll develop practical skills like testing macros, integrating macros with crates, and even sharing your macros with other developers. What's inside How Rust libraries use macros Reading and debugging macro code newtypes and the type state pattern About the reader For intermediate Rust programmers. About the author Sam Van Overmeire is an experienced Rust developer and the author of multiple books, scientific articles and blog posts. The technical editor on this book was Andrew Lilley Brinker. Table of contents 1 Going meta 2 Declarative macros 3 A “Hello, World” procedural macro 4 Making fields public with attribute macros 5 Hiding information and creating mini-DSLs with function-like macros 6 Testing a builder macro 7 From panic to result: Error handling 8 Builder with attributes 9 Writing an infrastructure DSL 10 Macros and the outside world




Rust Web Development


Book Description

Create bulletproof, high-performance web apps and servers with Rust. In Rust Web Development you will learn: Handling the borrow checker in an asynchronous environment Learning the ingredients of an asynchronous Rust stack Creating web APIs and using JSON in Rust Graceful error handling Testing, tracing, logging, and debugging Deploying Rust applications Efficient database access Rust Web Development is a pragmatic, hands-on guide to creating server-based web applications with Rust. If you’ve designed web servers using Java, NodeJS, or PHP, you’ll instantly fall in love with the performance and development experience Rust delivers. Hit the ground running! Author Bastian Gruber’s sage advice makes it easy to start tackling complex problems with Rust. You’ll learn how to work efficiently using pure Rust, along with important Rust libraries such as tokio for async runtimes, warp for web servers and APIs, and reqwest to run external HTTP requests. About the technology If you’re sick of cookie-cutter web development tools that are slow, resource hungry, and unstable, Rust is the solution. Rust services deliver rock-solid safety guarantees, an amazing developer experience, and even a compiler that automatically prevents common mistakes! About the book Rust Web Development, teaches you to build server-side web apps using Rust, along with important Rust libraries like tokio for async runtimes, warp for web servers and APIs, and reqwest to run external HTTP requests. The book is packed full of examples, code samples, and pro tips for setting up your projects and organizing your code. As you go, you’ll build a complete Q&A web service and iterate on your code chapter-by-chapter, just like a real development project. What's inside Handle the borrow checker in an asynchronous environment Build web APIs and handle JSON Compose a tech stack for asynchronous Rust development Handle errors gracefully Test, trace, log, and debug Deploy Rust applications to multiple environments About the reader This book is for web developers familiar with Java, Node, or Go, and the absolute basics of Rust. About the author Bastian Gruber was part of the official Rust Async Working Group, and founded the Rust and Tell Berlin MeetUp group. Table of Contents PART 1 INTRODUCTION TO RUST 1 Why Rust? 2 Laying the foundation PART 2 GETTING STARTED 3 Create your first route handler 4 Implement a RESTful API 5 Clean up your codebase 6 Logging, tracing, and debugging 7 Add a database to your application 8 Integrate third-party APIs PART 3 BRING IT INTO PRODUCTION 9 Add authentication and authorization 10 Deploy your application 11 Testing your Rust application




Command-Line Rust


Book Description

Updated in 2024: A new version has been released that simplifies the programs used in the book, based on changes in the Rust language and crates since original publication. The code has been updated to reflect version 4 of the clap crate. For several consecutive years, Rust has been voted "most loved programming language" in Stack Overflow's annual developer survey. This open source systems programming language is now used for everything from game engines and operating systems to browser components and virtual reality simulation engines. But Rust is also an incredibly complex language with a notoriously difficult learning curve. Rather than focusing on the language as a whole, this guide teaches Rust using a single small, complete, focused program in each chapter. Author Ken Youens-Clark shows you how to start, write, and test each of these programs to create a finished product. You'll learn how to handle errors in Rust, read and write files, and use regular expressions, Rust types, structs, and more. Discover how to: Use Rust's standard libraries and data types such as numbers, strings, vectors, structs, Options, and Results to create command-line programs Write and test Rust programs and functions Read and write files, including stdin, stdout, and stderr Document and validate command-line arguments Write programs that fail gracefully Parse raw and delimited text manually, using regular expressions and Rust crates Use and control randomness




Rust in Action


Book Description

"This well-written book will help you make the most of what Rust has to offer." - Ramnivas Laddad, author of AspectJ in Action Rust in Action is a hands-on guide to systems programming with Rust. Written for inquisitive programmers, it presents real-world use cases that go far beyond syntax and structure. Summary Rust in Action introduces the Rust programming language by exploring numerous systems programming concepts and techniques. You'll be learning Rust by delving into how computers work under the hood. You'll find yourself playing with persistent storage, memory, networking and even tinkering with CPU instructions. The book takes you through using Rust to extend other applications and teaches you tricks to write blindingly fast code. You'll also discover parallel and concurrent programming. Filled to the brim with real-life use cases and scenarios, you'll go beyond the Rust syntax and see what Rust has to offer in real-world use cases. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Rust is the perfect language for systems programming. It delivers the low-level power of C along with rock-solid safety features that let you code fearlessly. Ideal for applications requiring concurrency, Rust programs are compact, readable, and blazingly fast. Best of all, Rust’s famously smart compiler helps you avoid even subtle coding errors. About the book Rust in Action is a hands-on guide to systems programming with Rust. Written for inquisitive programmers, it presents real-world use cases that go far beyond syntax and structure. You’ll explore Rust implementations for file manipulation, networking, and kernel-level programming and discover awesome techniques for parallelism and concurrency. Along the way, you’ll master Rust’s unique borrow checker model for memory management without a garbage collector. What's inside Elementary to advanced Rust programming Practical examples from systems programming Command-line, graphical and networked applications About the reader For intermediate programmers. No previous experience with Rust required. About the author Tim McNamara uses Rust to build data processing pipelines and generative art. He is an expert in natural language processing and data engineering. Table of Contents 1 Introducing Rust PART 1 RUST LANGUAGE DISTINCTIVES 2 Language foundations 3 Compound data types 4 Lifetimes, ownership, and borrowing PART 2 DEMYSTIFYING SYSTEMS PROGRAMMING 5 Data in depth 6 Memory 7 Files and storage 8 Networking 9 Time and timekeeping 10 Processes, threads, and containers 11 Kernel 12 Signals, interrupts, and exceptions




Hands-On Microservices with Rust


Book Description

A comprehensive guide in developing and deploying high performance microservices with Rust Key FeaturesStart your microservices journey and get a broader perspective on microservices development using RUST 2018,Build, deploy, and test microservices using AWSExplore advanced techniques for developing microservices such as actor model, Requests Routing, and threadsBook Description Microservice architecture is sweeping the world as the de facto pattern for building web-based applications. Rust is a language particularly well-suited for building microservices. It is a new system programming language that offers a practical and safe alternative to C. This book describes web development using the Rust programming language and will get you up and running with modern web frameworks and crates with examples of RESTful microservices creation. You will deep dive into Reactive programming, and asynchronous programming, and split your web application into a set of concurrent actors. The book provides several HTTP-handling examples with manageable memory allocations. You will walk through stateless high-performance microservices, which are ideally suitable for computation or caching tasks, and look at stateful microservices, which are filled with persistent data and database interactions. As we move along, you will learn how to use Rust macros to describe business or protocol entities of our application and compile them into native structs, which will be performed at full speed with the help of the server's CPU. Finally, you will be taken through examples of how to test and debug microservices and pack them into a tiny monolithic binary or put them into a container and deploy them to modern cloud platforms such as AWS. What you will learnGet acquainted with leveraging Rust web programmingGet to grips with various Rust crates, such as hyper, Tokio, and ActixExplore RESTful microservices with RustUnderstand how to pack Rust code to a container using DockerFamiliarize yourself with Reactive microservicesDeploy your microservices to modern cloud platforms such as AWSWho this book is for This book is for developers who have basic knowledge of RUST, and want to learn how to build, test, scale, and manage RUST microservices. No prior experience of writing microservices in RUST is assumed.




The Rust Programming Language (Covers Rust 2018)


Book Description

The official book on the Rust programming language, written by the Rust development team at the Mozilla Foundation, fully updated for Rust 2018. The Rust Programming Language is the official book on Rust: an open source systems programming language that helps you write faster, more reliable software. Rust offers control over low-level details (such as memory usage) in combination with high-level ergonomics, eliminating the hassle traditionally associated with low-level languages. The authors of The Rust Programming Language, members of the Rust Core Team, share their knowledge and experience to show you how to take full advantage of Rust's features--from installation to creating robust and scalable programs. You'll begin with basics like creating functions, choosing data types, and binding variables and then move on to more advanced concepts, such as: Ownership and borrowing, lifetimes, and traits Using Rust's memory safety guarantees to build fast, safe programs Testing, error handling, and effective refactoring Generics, smart pointers, multithreading, trait objects, and advanced pattern matching Using Cargo, Rust's built-in package manager, to build, test, and document your code and manage dependencies How best to use Rust's advanced compiler with compiler-led programming techniques You'll find plenty of code examples throughout the book, as well as three chapters dedicated to building complete projects to test your learning: a number guessing game, a Rust implementation of a command line tool, and a multithreaded server. New to this edition: An extended section on Rust macros, an expanded chapter on modules, and appendixes on Rust development tools and editions.




Rust Web Programming


Book Description

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 FeaturesBuild scalable web applications in Rust using popular frameworks such as Actix, Rocket, and WarpCreate front-end components that can be injected into multiple viewsDevelop data models in Rust to interact with the databaseBook 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 learnStructure scalable web apps in Rust in Rocket, Actix Web, and WarpApply data persistence for your web apps using PostgreSQLBuild login, JWT, and config modules for your web appsServe HTML, CSS, and JavaScript from the Actix Web serverBuild unit tests and functional API tests in Postman and NewmanDeploy the Rust app with NGINX and Docker onto an AWS EC2 instanceWho 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.




Rust Web Programming


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.




Creative Projects for Rust Programmers


Book Description

A practical guide to understanding the latest features of the Rust programming language, useful libraries, and frameworks that will help you design and develop interesting projects Key FeaturesWork through projects that will help you build high-performance applications with RustDelve into concepts such as error handling, memory management, concurrency, generics, and macros with RustImprove business productivity by choosing the right libraries and frameworks for your applicationsBook Description Rust is a community-built language that solves pain points present in many other languages, thus improving performance and safety. In this book, you will explore the latest features of Rust by building robust applications across different domains and platforms. The book gets you up and running with high-quality open source libraries and frameworks available in the Rust ecosystem that can help you to develop efficient applications with Rust. You'll learn how to build projects in domains such as data access, RESTful web services, web applications, 2D games for web and desktop, interpreters and compilers, emulators, and Linux Kernel modules. For each of these application types, you'll use frameworks such as Actix, Tera, Yew, Quicksilver, ggez, and nom. This book will not only help you to build on your knowledge of Rust but also help you to choose an appropriate framework for building your project. By the end of this Rust book, you will have learned how to build fast and safe applications with Rust and have the real-world experience you need to advance in your career. What you will learnAccess TOML, JSON, and XML files and SQLite, PostgreSQL, and Redis databasesDevelop a RESTful web service using JSON payloadsCreate a web application using HTML templates and JavaScript and a frontend web application or web game using WebAssemblyBuild desktop 2D gamesDevelop an interpreter and a compiler for a programming languageCreate a machine language emulatorExtend the Linux Kernel with loadable modulesWho this book is for This Rust programming book is for developers who want to get hands-on experience with implementing their knowledge of Rust programming, and are looking for expert advice on which libraries and frameworks they can adopt to develop software that typically uses the Rust language.