Idiomatic Rust

Idiomatic Rust
Author: Brenden Matthews
Publisher: Simon and Schuster
Total Pages: 413
Release: 2024-09-24
Genre: Computers
ISBN: 163835572X

Tips, tricks, design patterns, and secret features of Rust that will help you build stable and maintainable applications. Whether you’re a Rust beginner or a pro, Idiomatic Rust will teach you to be a better Rust programmer. It introduces essential design patterns for Rust software with detailed explanations, and code samples that encourage you to get stuck in. In Idiomatic Rust you’ll learn how to apply important design patterns including: • Fluent interfaces for creating delightful APIs • The Builder pattern to encapsulate data and perform initialization • Immutable data structures that help you avoid hard-to-debug data race conditions • Functional programming patterns • Anti-patterns and what not to do in Rust Idiomatic Rust catalogs, documents, and describes both how classic design patterns work with Rust, and the new Rust-specific patterns that will help you master the language. Each pattern or best practice helps solve common programming problems and ensure your code is easy for others to understand. You’ll learn when to use each pattern—and when to break it! You’ll soon be producing higher-quality Rust code and higher-quality Rust software. About the technology After you’re comfortable with Rust’s syntax and its uniquely-powerful compiler, there’s a whole new dimension to explore as you put it to use in real projects. How do you apply standard design patterns in Rust applications? Where and why should you use IntoIterator? Why do Rustaceans love the PhantomData type? This book answers these questions and many, many more. About the book Idiomatic Rust introduces the coding and design patterns you’ll need to take advantage of Rust’s unique language design. This book’s clear explanations and reusable code examples help you explore metaprogramming, build your own libraries, create fluent interfaces, and more. Along the way, you’ll learn how to write efficient, idiomatic Rust code that’s easy to maintain and evolve as you learn how the language works under the hood. What's inside • Creating delightful APIs • Applying Builder and other classic design patterns • Functional programming patterns • Rust anti-patterns About the reader For intermediate Rust programmers. About the author Brenden Matthews is a member of the Apache Software Foundation, creator of the system monitor Conky, and author of Code Like a Pro in Rust. The technical editor on this book was Alain M Couniot. Table of Contents PART 1 1 Rust-y patterns 2 Rust’s basic building blocks 3 Code flow PART 2 4 Introductory patterns 5 Design patterns: Beyond the basics 6 Designing a library PART 3 7 Using traits, generics, and structs for specialized tasks 8 State machines, coroutines, macros, and preludes PART 4 9 Immutability 10 Antipatterns A Installing Rust

Rust for Rustaceans

Rust for Rustaceans
Author: Jon Gjengset
Publisher: No Starch Press
Total Pages: 282
Release: 2021-12-21
Genre: Computers
ISBN: 1718501862

Master professional-level coding in Rust. For developers who’ve mastered the basics, this book is the next step on your way to professional-level programming in Rust. It covers everything you need to build and maintain larger code bases, write powerful and flexible applications and libraries, and confidently expand the scope and complexity of your projects. Author Jon Gjengset takes you deep into the Rust programming language, dissecting core topics like ownership, traits, concurrency, and unsafe code. You’ll explore key concepts like type layout and trait coherence, delve into the inner workings of concurrent programming and asynchrony with async/await, and take a tour of the world of no_std programming. Gjengset also provides expert guidance on API design, testing strategies, and error handling, and will help develop your understanding of foreign function interfaces, object safety, procedural macros, and much more. You'll Learn: How to design reliable, idiomatic, and ergonomic Rust programs based on best principles Effective use of declarative and procedural macros, and the difference between them How asynchrony works in Rust – all the way from the Pin and Waker types used in manual implementations of Futures, to how async/await saves you from thinking about most of those words What it means for code to be unsafe, and best practices for writing and interacting with unsafe functions and traits How to organize and configure more complex Rust projects so that they integrate nicely with the rest of the ecosystem How to write Rust code that can interoperate with non-Rust libraries and systems, or run in constrained and embedded environments Brimming with practical, pragmatic insights that you can immediately apply, Rust for Rustaceans helps you do more with Rust, while also teaching you its underlying mechanisms.

The Rust Programming Language (Covers Rust 2018)

The Rust Programming Language (Covers Rust 2018)
Author: Steve Klabnik
Publisher: No Starch Press
Total Pages: 561
Release: 2019-09-03
Genre: Computers
ISBN: 1718500459

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.

Command-Line Rust

Command-Line Rust
Author: Ken Youens-Clark
Publisher: "O'Reilly Media, Inc."
Total Pages: 389
Release: 2022-01-13
Genre: Computers
ISBN: 1098109384

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

Programming Rust

Programming Rust
Author: Jim Blandy
Publisher: "O'Reilly Media, Inc."
Total Pages: 646
Release: 2017-11-21
Genre: Computers
ISBN: 1491927232

Rust is a new systems programming language that combines the performance and low-level control of C and C++ with memory safety and thread safety. Rust’s modern, flexible types ensure your program is free of null pointer dereferences, double frees, dangling pointers, and similar bugs, all at compile time, without runtime overhead. In multi-threaded code, Rust catches data races at compile time, making concurrency much easier to use. Written by two experienced systems programmers, this book explains how Rust manages to bridge the gap between performance and safety, and how you can take advantage of it. Topics include: How Rust represents values in memory (with diagrams) Complete explanations of ownership, moves, borrows, and lifetimes Cargo, rustdoc, unit tests, and how to publish your code on crates.io, Rust’s public package repository High-level features like generic code, closures, collections, and iterators that make Rust productive and flexible Concurrency in Rust: threads, mutexes, channels, and atomics, all much safer to use than in C or C++ Unsafe code, and how to preserve the integrity of ordinary code that uses it Extended examples illustrating how pieces of the language fit together

Programming Rust

Programming Rust
Author: Jim Blandy
Publisher: "O'Reilly Media, Inc."
Total Pages: 621
Release: 2017-11-21
Genre: Computers
ISBN: 1491927259

Rust is a new systems programming language that combines the performance and low-level control of C and C++ with memory safety and thread safety. Rust’s modern, flexible types ensure your program is free of null pointer dereferences, double frees, dangling pointers, and similar bugs, all at compile time, without runtime overhead. In multi-threaded code, Rust catches data races at compile time, making concurrency much easier to use. Written by two experienced systems programmers, this book explains how Rust manages to bridge the gap between performance and safety, and how you can take advantage of it. Topics include: How Rust represents values in memory (with diagrams) Complete explanations of ownership, moves, borrows, and lifetimes Cargo, rustdoc, unit tests, and how to publish your code on crates.io, Rust’s public package repository High-level features like generic code, closures, collections, and iterators that make Rust productive and flexible Concurrency in Rust: threads, mutexes, channels, and atomics, all much safer to use than in C or C++ Unsafe code, and how to preserve the integrity of ordinary code that uses it Extended examples illustrating how pieces of the language fit together

Rust in Action

Rust in Action
Author: Tim McNamara
Publisher: Simon and Schuster
Total Pages: 454
Release: 2021-09-07
Genre: Computers
ISBN: 163835622X

"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

The The Complete Rust Programming Reference Guide

The The Complete Rust Programming Reference Guide
Author: Rahul Sharma
Publisher: Packt Publishing Ltd
Total Pages: 685
Release: 2019-05-22
Genre: Computers
ISBN: 1838826386

Design and implement professional-level programs by leveraging modern data structures and algorithms in Rust Key FeaturesImprove your productivity by writing more simple and easy code in RustDiscover the functional and reactive implementations of traditional data structuresDelve into new domains of Rust, including WebAssembly, networking, and command-line toolsBook Description Rust is a powerful language with a rare combination of safety, speed, and zero-cost abstractions. This Learning Path is filled with clear and simple explanations of its features along with real-world examples, demonstrating how you can build robust, scalable, and reliable programs. You’ll get started with an introduction to Rust data structures, algorithms, and essential language constructs. Next, you will understand how to store data using linked lists, arrays, stacks, and queues. You’ll also learn to implement sorting and searching algorithms, such as Brute Force algorithms, Greedy algorithms, Dynamic Programming, and Backtracking. As you progress, you’ll pick up on using Rust for systems programming, network programming, and the web. You’ll then move on to discover a variety of techniques, right from writing memory-safe code, to building idiomatic Rust libraries, and even advanced macros. By the end of this Learning Path, you’ll be able to implement Rust for enterprise projects, writing better tests and documentation, designing for performance, and creating idiomatic Rust code. This Learning Path includes content from the following Packt products: Mastering Rust - Second Edition by Rahul Sharma and Vesa KaihlavirtaHands-On Data Structures and Algorithms with Rust by Claus MatzingerWhat you will learnDesign and implement complex data structures in RustCreate and use well-tested and reusable components with RustUnderstand the basics of multithreaded programming and advanced algorithm designExplore application profiling based on benchmarking and testingStudy and apply best practices and strategies in error handlingCreate efficient web applications with the Actix-web frameworkUse Diesel for type-safe database interactions in your web applicationWho this book is for If you are already familiar with an imperative language and now want to progress from being a beginner to an intermediate-level Rust programmer, this Learning Path is for you. Developers who are already familiar with Rust and want to delve deeper into the essential data structures and algorithms in Rust will also find this Learning Path useful.

Rust Web Development

Rust Web Development
Author: Bastian Gruber
Publisher: Simon and Schuster
Total Pages: 398
Release: 2023-01-24
Genre: Computers
ISBN: 1617299006

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. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. 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 is a Protocol Engineer at Centrifuge. He 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

Rust Servers, Services, and Apps

Rust Servers, Services, and Apps
Author: Prabhu Eshwarla
Publisher: Simon and Schuster
Total Pages: 570
Release: 2023-10-31
Genre: Computers
ISBN: 163835121X

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