Book Image

Rust Programming Cookbook

By : Claus Matzinger
Book Image

Rust Programming Cookbook

By: Claus Matzinger

Overview of this book

Rust 2018, Rust's first major milestone since version 1.0, brings more advancement in the Rust language. The Rust Programming Cookbook is a practical guide to help you overcome challenges when writing Rust code. This Rust book covers recipes for configuring Rust for different environments and architectural designs, and provides solutions to practical problems. It will also take you through Rust's core concepts, enabling you to create efficient, high-performance applications that use features such as zero-cost abstractions and improved memory management. As you progress, you'll delve into more advanced topics, including channels and actors, for building scalable, production-grade applications, and even get to grips with error handling, macros, and modularization to write maintainable code. You will then learn how to overcome common roadblocks when using Rust for systems programming, IoT, web development, and network programming. Finally, you'll discover what Rust 2018 has to offer for embedded programmers. By the end of the book, you'll have learned how to build fast and safe applications and services using Rust.
Table of Contents (12 chapters)

Working with piped input data

Reading data from files is a very common task that we described in another recipe in this chapter (Writing to and reading from files). However, that's not always the best option. In fact, many Linux/Unix programs can be chained together using a pipe (|) to process an incoming stream. This allows for several things to be done:

  • Flexibility on the input source, static text, files, and networking streams—no need to change the programs
  • Run several processes, writing only the end result back to disk
  • Lazy evaluation of the stream
  • Flexible processing up-/downstream (for example, gzipping the output before writing to disk)

If you are not familiar with how this works, the pipe syntax may look cryptic. However, it actually stems from a functional programming paradigm (https://www.geeksforgeeks.org/functional-programming-paradigm/), where pipes...