Flitton Maxwell, Morton Caroline / Флиттон Максвелл, Мортон Кэролайн - Async Rust / Асинхронный Rust [2025, PDF/EPUB, ENG]

Страницы:  1
Ответить
 

tsurijin

Стаж: 4 года

Сообщений: 2174


tsurijin · 18-Ноя-24 08:17 (3 дня назад, ред. 18-Ноя-24 08:21)

Async Rust: Unleashing the Power of Fearless Concurrency / Асинхронный Rust: Раскрываем мощь бесстрашного параллелизма
Год издания: 2025
Автор: Flitton Maxwell, Morton Caroline / Флиттон Максвелл, Мортон Кэролайн
Издательство: O’Reilly Media, Inc.
ISBN: 978-1-098-14909-3
Язык: Английский
Формат: PDF/EPUB
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 264
Описание: Already popular among programmers for its memory safety and speed, the Rust programming language is also valuable for asynchrony. This practical book shows you how asynchronous Rust can help you solve problems that require multitasking. You’ll learn how to apply async programming to solve problems with an async approach. You will also dive deeper into async runtimes, implementing your own ways in which async runtimes handle incoming tasks.
Authors Maxwell Flitton and Caroline Morton also show you how to implement the Tokio software library to help you with incoming traffic, communicate between threads with shared memory and channels, and design a range of complex solutions using actors. You’ll also learn to perform unit and end-to-end tests on a Rust async system.
With this book, you’ll learn:
How Rust approaches async programming
How coroutines relate to async Rust
Reactive programming and how to implement pub sub in async rust
How to solve problems using actors
How to customize Tokio to gain control over how tasks are processed
Async Rust design patterns
How to build an async TCP server just using the standard library
How to unit test async Rust
By the end of the book, you’ll be able to implement your own async TCP server completely from the standard library with zero external dependencies, and unit test your async code.
Язык программирования Rust, который уже пользуется популярностью среди программистов благодаря своей безопасности и быстродействию, также полезен для работы в асинхронном режиме. В этой практической книге показано, как асинхронный Rust может помочь вам решать задачи, требующие многозадачности. Вы узнаете, как применять асинхронное программирование для решения задач с использованием асинхронного подхода. Вы также глубже познакомитесь с асинхронными средами выполнения, реализуя свои собственные способы, с помощью которых асинхронные среды выполнения обрабатывают входящие задачи.
Авторы Максвелл Флиттон и Кэролайн Мортон также покажут вам, как реализовать программную библиотеку Tokio, которая поможет вам управлять входящим трафиком, обмениваться данными между потоками с помощью общей памяти и каналов и разрабатывать ряд сложных решений с использованием действующих лиц. Вы также научитесь выполнять модульные и сквозные тесты в асинхронной системе Rust.
Из этой книги вы узнаете:
Как Rust подходит к асинхронному программированию
Как сопрограммы соотносятся с асинхронным Rust
Реактивное программирование и как реализовать pub sub в асинхронном rust
Как решать проблемы с помощью актеров
Как настроить Tokio, чтобы получить контроль над обработкой задач
Асинхронные шаблоны проектирования Rust
Как создать асинхронный TCP-сервер, используя только стандартную библиотеку
Как провести модульное тестирование async Rust
В конце книги вы сможете полностью реализовать свой собственный асинхронный TCP-сервер из стандартной библиотеки с нулевыми внешними зависимостями и провести модульное тестирование вашего асинхронного кода.
Примеры страниц (скриншоты)
Оглавление
Preface vii
1. Introduction to Async 1
What Is Async? 2
Introduction to Processes 5
What Are Threads? 10
Where Can We Utilize Async? 16
Using Async for File I/O 17
Improving HTTP Request Performance with Async 20
Summary 22
2. Basic Async Rust 23
Understanding Tasks 23
Futures 29
Pinning in Futures 30
Context in Futures 32
Waking Futures Remotely 35
Sharing Data Between Futures 37
High-Level Data Sharing Between Futures 41
How Are Futures Processed? 43
Putting It All Together 44
Summary 48
3. Building Our Own Async Queues 49
Building Our Own Async Queue 50
Increasing Workers and Queues 57
Passing Tasks to Different Queues 59
Task Stealing 61
Refactoring Our spawn_task Function 63
Creating Our Own Join Macro 65
Configuring Our Runtime 66
Running Background Processes 68
Summary 69
4. Integrating Networking into Our Own Async Runtime 71
Understanding Executors and Connectors 72
Integrating hyper into Our Async Runtime 73
Building an HTTP Connection 74
Implementing the Tokio AsyncRead Trait 77
Implementing the Tokio AsyncWrite Trait 79
Connecting and Running Our Client 81
Introducing mio 82
Polling Sockets in Futures 83
Sending Data over the Socket 86
Summary 88
5. Coroutines 89
Introducing Coroutines 90
What Are Coroutines? 90
Why Use Coroutines? 91
Generating with Coroutines 94
Implementing a Simple Generator in Rust 95
Stacking Our Coroutines 96
Calling a Coroutine from a Coroutine 98
Mimicking Async Behavior with Coroutines 100
Controlling Coroutines 104
Testing Coroutines 109
Summary 113
6. Reactive Programming 115
Building a Basic Reactive System 115
Defining Our Subjects 116
Building Our Display Observer 118
Building Our Heater and Heat-Loss Observer 121
Getting User Input via Callbacks 124
Enabling Broadcasting with an Event Bus 127
Building Our Event Bus Struct 128
Building Our Event Bus Handle 131
Interacting with Our Event Bus via Async Tasks 132
Summary 135
7. Customizing Tokio 137
Building a Runtime 137
Processing Tasks with Local Pools 142
Getting Unsafe with Thread Data 147
Graceful Shutdowns 149
Summary 154
8. The Actor Model 155
Building a Basic Actor 155
Working with Actors Versus Mutexes 157
Implementing the Router Pattern 160
Implementing State Recovery for Actors 165
Creating Actor Supervision 170
Summary 176
9. Design Patterns 179
Building an Isolated Module 179
Waterfall Design Pattern 185
The Decorator Pattern 186
The State Machine Pattern 190
The Retry Pattern 193
The Circuit-Breaker Pattern 194
Summary 196
10. Building an Async Server with No Dependencies 197
Setting Up the Basics 197
Building Our std Async Runtime 199
Building Our Waker 200
Building Our Executor 202
Running Our Executor 205
Building Our Sender 207
Building Our Receiver 208
Building Our Sleep 209
Building Our Server 210
Accepting Requests 211
Handling Requests 214
Building Our Async Client 215
Summary 216
11. Testing 219
Performing Basic Sync Testing 219
Mocking Async Code 222
Testing For Deadlocks 224
Testing for Race Conditions 227
Testing Channel Capacity 229
Testing Network Interactions 231
Fine-Grained Future Testing 233
Summary 235
Index 237
Download
Rutracker.org не распространяет и не хранит электронные версии произведений, а лишь предоставляет доступ к создаваемому пользователями каталогу ссылок на торрент-файлы, которые содержат только списки хеш-сумм
Как скачивать? (для скачивания .torrent файлов необходима регистрация)
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error