دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 2 نویسندگان: Vesa Kaihlavirta, Rahul Sharma, سری: ISBN (شابک) : 9781789346572 ناشر: سال نشر: 2019 تعداد صفحات: 543 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 12 مگابایت
در صورت تبدیل فایل کتاب Mastering Rust به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب تسلط بر زنگ نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Cover Title Page Copyright and Credits About Packt Contributors Table of Contents Preface Chapter 1: Getting Started with Rust What is Rust and why should you care? Installing the Rust compiler and toolchain Using rustup.rs A tour of the language Primitive types Declaring variables and immutability Functions Closures Strings Conditionals and decision making Match expressions Loops User-defined types Structs Enums Functions and methods on types Impl blocks on structs Impl blocks for enums Modules, imports, and use statements Collections Arrays Tuples Vectors Hashmaps Slices Iterators Exercise – fixing the word counter Summary Chapter 2: Managing Projects with Cargo Package managers Modules Nested modules File as a module Directory as module Cargo and crates Creating a new Cargo project Cargo and dependencies Running tests with Cargo Running examples with Cargo Cargo workspace Extending Cargo and tools Subcommands and Cargo installation cargo-watch cargo-edit cargo-deb cargo-outdated Linting code with clippy Exploring the manifest file – Cargo.toml Setting up a Rust development environment Building a project with Cargo – imgtool Summary Chapter 3: Tests, Documentation, and Benchmarks Motivation for testing Organizing tests Testing primitives Attributes Assertion macros Unit tests First unit test Running tests Isolating test code Failing tests Ignoring tests Integration tests First integration test Sharing common code Documentation Writing documentation Generating and viewing documentation Hosting documentation Doc attributes Documentation tests Benchmarks Built-in micro-benchmark harness Benchmarking on stable Rust Writing and testing a crate – logic gate simulator Continuous integration with Travis CI Summary Chapter 4: Types, Generics, and Traits Type systems and why they matter Generics Creating generic types Generic functions Generic types Generic implementations Using generics Abstracting behavior with traits Traits The many forms of traits Marker traits Simple traits Generic traits Associated type traits Inherited traits Using traits with generics – trait bounds Trait bounds on types Trait bounds on generic functions and impl blocks Using + to compose traits as bounds Trait bounds with impl trait syntax Exploring standard library traits True polymorphism using trait objects Dispatch Trait objects Summary Chapter 5: Memory Management and Safety Programs and memory How do programs use memory? Memory management and its kinds Approaches to memory allocation The stack The heap Memory management pitfalls Memory safety Trifecta of memory safety Ownership A brief on scopes Move and copy semantics Duplicating types via traits Copy Clone Ownership in action Borrowing Borrowing rules Borrowing in action Method types based on borrowing Lifetimes Lifetime parameters Lifetime elision and the rules Lifetimes in user defined types Lifetime in impl blocks Multiple lifetimes Lifetime subtyping Specifying lifetime bounds on generic types Pointer types in Rust References – safe pointers Raw pointers Smart pointers Drop Deref and DerefMut Types of smart pointers BoxReference counted smart pointers Rc Interior mutability Cell RefCell Uses of interior mutability Summary Chapter 6: Error Handling Error handling prelude Recoverable errors Option Result Combinators on Option/Result Common combinators Using combinators Converting between Option and Result Early returns and the ? operator Non-recoverable errors User-friendly panics Custom errors and the Error trait Summary Chapter 7: Advanced Concepts Type system tidbits Blocks and expressions Let statements Loop as an expression Type clarity and sign distinction in numeric types Type inference Type aliases Strings Owned strings – String Borrowed strings – &str Slicing and dicing strings Using strings in functions Joining strings When to use &str versus String ? Global values Constants Statics Compile time functions – const fn Dynamic statics using the lazy_static! macro Iterators Implementing a custom iterator Advanced types Unsized types Function types Never type ! and diverging functions Unions Cow Advanced traits Sized and ?Sized Borrow and AsRef ToOwned From and Into Trait objects and object safety Universal function call syntax Trait rules Closures in depth Fn closures FnMut closures FnOnce closures Consts in structs, enums, and traits Modules, paths, and imports Imports Re-exports Selective privacy Advanced match patterns and guards Match guards Advanced let destructure Casting and coercion Types and memory Memory alignment Exploring the std::mem module Serialization and deserialization using serde Summary Chapter 8: Concurrency Program execution models Concurrency Approaches to concurrency Kernel-based User-level Pitfalls Concurrency in Rust Thread basics Customizing threads Accessing data from threads Concurrency models with threads Shared state model Shared ownership with Arc Mutating shared data from threads Mutex Shared mutability with Arc and Mutex RwLock Communicating through message passing Asynchronous channels Synchronous channels thread-safety in Rust What is thread-safety? Traits for thread-safety Send Sync Concurrency using the actor model Other crates Summary Chapter 9: Metaprogramming with Macros What is metaprogramming? When to use and not use Rust macros Macros in Rust and their types Types of macros Creating your first macro with macro_rules! Built-in macros in the standard library macro_rules! token types Repetitions in macros A more involved macro – writing a DSL for HashMap initialization Macro use case – writing tests Exercises Procedural macros Derive macros Debugging macros Useful procedural macro crates Summary Chapter 10: Unsafe Rust and Foreign Function Interfaces What is safe and unsafe really? Unsafe functions and blocks Unsafe traits and implementations Calling C code from Rust Calling Rust code from C Using external C/C++ libraries from Rust Creating native Python extensions with PyO3 Creating native extensions in Rust for Node.js Summary Chapter 11: Logging What is logging and why do we need it? The need for logging frameworks Logging frameworks and their key features Approaches to logging Unstructured logging Structured logging Logging in Rust log – Rust's logging facade The env_logger log4rs Structured logging using slog Summary Chapter 12: Network Programming in Rust Network programming prelude Synchronous network I/O Building a synchronous redis server Asynchronous network I/O Async abstractions in Rust Mio Futures Tokio Building an asynchronous redis server Summary Chapter 13: Building Web Applications with Rust Web applications in Rust Typed HTTP with Hyper Hyper server APIs – building a URL shortener hyper as a client – building a URL shortener client Web frameworks Actix-web basics Building a bookmarks API using Actix-web Summary Chapter 14: Interacting with Databases in Rust Why do we need data persistence? SQLite PostgreSQL Connection pooling with r2d2 Postgres and the diesel ORM Summary Chapter 15: Rust on the Web with WebAssembly What is WebAssembly? Design goals of WebAssembly Getting started with WebAssembly Trying it out online Ways to generate WebAssembly Rust and WebAssembly Wasm-bindgen Other WebAssembly projects Rust Other languages Summary Chapter 16: Building Desktop Applications with Rust Introduction to GUI development GTK+ framework Building a hacker news app using gtk-rs Exercise Other emerging GUI frameworks Summary Chapter 17: Debugging Introduction to debugging Debuggers in general Prerequisites for debugging Setting up gdb A sample program – buggie The gdb basics Debugger integration with Visual Studio Code RR debugger – a quick overview Summary Other Books You May Enjoy Index