▶Book Description
Rust is an open source, safe, concurrent, practical language created by Mozilla. It runs blazingly fast, prevents segfaults, and guarantees safety. This book gets you started with essential software development by guiding you through the different aspects of Rust programming. With this approach, you can bridge the gap between learning and implementing immediately.
Beginning with an introduction to Rust, you'll learn the basic aspects such as its syntax, data types, functions, generics, control flows, and more. After this, you'll jump straight into building your first project, a Tetris game. Next you'll build a graphical music player and work with fast, reliable networking software using Tokio, the scalable and productive asynchronous IO Rust library.
Over the course of this book, you'll explore various features of Rust Programming including its SDL features, event loop, File I/O, and the famous GTK+ widget toolkit. Through these projects, you'll see how well Rust performs in terms of concurrency-including parallelism, reliability, improved performance, generics, macros, and thread safety. We'll also cover some asynchronous and reactive programming aspects of Rust.
By the end of the book, you'll be comfortable building various real-world applications in Rust.
▶What You Will Learn
⦁ Compile and run the Rust projects using the Cargo-Rust Package manager
⦁ Use Rust-SDL features such as the event loop, windows, infinite loops, pattern matching, and more
⦁ Create a graphical interface using Gtk-rs and Rust-SDL
⦁ Incorporate concurrency mechanism and multi-threading along with thread safety and locks
⦁ Implement the FTP protocol using an Asynchronous I/O stack with the Tokio library
▶Key Features
⦁ Implement various features of Rust to build blazingly fast applications
⦁ Learn to build GUI applications using Gtk-rs
⦁ Explore the multi-threading aspect of Rust to tackle problems in concurrency and in distributed environments
▶Who This Book Is For
This book is for software developers interested in system level and application programming who are looking for a quick entry into using Rust and understanding the core features of the Rust Programming. It's assumed that you have a basic understanding of Java, C#, Ruby, Python, or JavaScript.
▶What this book covers
⦁ Chapter 1, Basics of Rust, covers the installation of Rust and teaches the syntax and basic principles of the language so that you are ready to code projects with it.
⦁ Chapter 2, Starting with SDL, shows how to start using SDL and its main features, such as events and drawings. Once the project is created, we'll make a window displaying an image.
⦁ Chapter 3, Events and Basic Game Mechanisms, takes you deeper into how to handle events. We'll write the tetrimino objects and make them change following the received events.
⦁ Chapter 4, Adding All Game Mechanisms, completes the game's mechanisms. At the end of this chapter, we'll have a fully running Tetris game.
⦁ Chapter 5, Creating a Music Player, helps you start building a graphical music player. Only the user interface will be covered in this chapter.
⦁ Chapter 6, Implementing the Engine of the Music Player, adds the music player engine to the graphical application.
⦁ Chapter 7, Music Player in a More Rusty Way with Relm, improves the music player to add a playing, allowing to process the music in the list to remove the vocals.
⦁ Chapter 8, Understanding FTP, introduces the FTP protocol by implementing a synchronous FTP server, to prepare you to write the asynchronous version in the next chapters.
⦁ Chapter 9, Implementing an Asynchronous FTP Server, implements an FTP protocol with Tokio.
⦁ Chapter 10, Implementing Asynchronous File Transfer, implements the FTP service itself. This is where the application will be able to upload and download files.
⦁ Appendix, Rust Best Practices, shows how to write nice Rust APIs and how to make them as easy and nice to use as possible.