{"product_id":"beginning-rust-programming-isbn-9781119712978","title":"Beginning Rust Programming","description":"\u003cp\u003e\u003cb\u003eQuickly learn the ropes with the Rust programming language using this practical, step-by-step guide \u003cbr\u003e\u003cbr\u003e\u003c\/b\u003eIn \u003ci\u003eBeginning Rust Programming\u003c\/i\u003e, accomplished programmer and author Ric Messier delivers a highly practical, real-world guide to coding with Rust. Avoiding dry, theoretical content and “Hello, world”-type tutorials of questionable utility, the book dives immediately into functional Rust programming that takes advantage of the language’s blazing speed and memory efficiency. \u003cbr\u003e\u003cbr\u003eDesigned from the ground up to give you a running start to using the multiparadigm system programming language, this book will teach you to: \u003c\/p\u003e \u003cul\u003e \u003cli\u003eSolve real-world computer science problems of practical importance \u003c\/li\u003e \u003cli\u003eUse Rust’s rich type system and ownership model to guarantee memory-safety and thread-safety \u003c\/li\u003e \u003cli\u003eIntegrate Rust with other programming languages and use it for embedded devices \u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003ePerfect for programmers with some experience in other languages, like C or C++, \u003ci\u003eBeginning Rust Programming\u003c\/i\u003e is also a great pick for students new to programming and seeking a user-friendly and robust language with which to start their coding career.\u003c\/p\u003e \u003cp\u003eIntroduction xix\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Game of Life: The Basics 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGame of Life: The Program 2\u003c\/p\u003e \u003cp\u003eStarting with Cargo 4\u003c\/p\u003e \u003cp\u003ePutting the Pieces Together 5\u003c\/p\u003e \u003cp\u003eBringing In External Functionality 5\u003c\/p\u003e \u003cp\u003eNamespaces 6\u003c\/p\u003e \u003cp\u003eGenerating the Game Grid 7\u003c\/p\u003e \u003cp\u003eDissecting Main 8\u003c\/p\u003e \u003cp\u003eDefining Functions 8\u003c\/p\u003e \u003cp\u003eDefining Variables 9\u003c\/p\u003e \u003cp\u003eDatatypes 11\u003c\/p\u003e \u003cp\u003eArrays 12\u003c\/p\u003e \u003cp\u003eControl Structures 14\u003c\/p\u003e \u003cp\u003eLooking at More Function Functions 16\u003c\/p\u003e \u003cp\u003eReturning Values 16\u003c\/p\u003e \u003cp\u003ePassing Parameters 18\u003c\/p\u003e \u003cp\u003eScope 21\u003c\/p\u003e \u003cp\u003eCompiling Programs 22\u003c\/p\u003e \u003cp\u003eSummary 24\u003c\/p\u003e \u003cp\u003eExercises 25\u003c\/p\u003e \u003cp\u003eAdditional Resources 25\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Extended Life 27\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Ownership 28\u003c\/p\u003e \u003cp\u003eExtending Life 30\u003c\/p\u003e \u003cp\u003eAdding Modules 32\u003c\/p\u003e \u003cp\u003eWorking with Command-Line Arguments 34\u003c\/p\u003e \u003cp\u003eOption Types 36\u003c\/p\u003e \u003cp\u003eReading from Files 39\u003c\/p\u003e \u003cp\u003eExtracting Values 41\u003c\/p\u003e \u003cp\u003ePopulating from the Vector 42\u003c\/p\u003e \u003cp\u003eOutputting to the Terminal 43\u003c\/p\u003e \u003cp\u003eUsing Colors 44\u003c\/p\u003e \u003cp\u003ePrinting Generations 44\u003c\/p\u003e \u003cp\u003eSummary 46\u003c\/p\u003e \u003cp\u003eExercises 48\u003c\/p\u003e \u003cp\u003eAdditional Resources 48\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Building A Library 49\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eReferences 50\u003c\/p\u003e \u003cp\u003eFirst Pass 53\u003c\/p\u003e \u003cp\u003eTraits and Implementations 56\u003c\/p\u003e \u003cp\u003eSelf-Identification 60\u003c\/p\u003e \u003cp\u003eThe Rest 60\u003c\/p\u003e \u003cp\u003eSecond Pass 62\u003c\/p\u003e \u003cp\u003eThe Driver 65\u003c\/p\u003e \u003cp\u003eSummary 67\u003c\/p\u003e \u003cp\u003eExercises 69\u003c\/p\u003e \u003cp\u003eAdditional Resources 69\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Hangman 71\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOur Data 74\u003c\/p\u003e \u003cp\u003eThe Traits 77\u003c\/p\u003e \u003cp\u003eImplementations 79\u003c\/p\u003e \u003cp\u003eUsing the \u003ci\u003eOption Enum 82\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003eFinishing Up the Implementation 83\u003c\/p\u003e \u003cp\u003eReading Files and Selecting Words 84\u003c\/p\u003e \u003cp\u003eHandling Errors Concisely 85\u003c\/p\u003e \u003cp\u003eGenerics and Bounds 87\u003c\/p\u003e \u003cp\u003eA Vector of Lines 88\u003c\/p\u003e \u003cp\u003eThe Rest of the Story 90\u003c\/p\u003e \u003cp\u003eInitialization 91\u003c\/p\u003e \u003cp\u003ePlaying the Game 92\u003c\/p\u003e \u003cp\u003eSummary 94\u003c\/p\u003e \u003cp\u003eExercises 95\u003c\/p\u003e \u003cp\u003eAdditional Resources 95\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: In Concurrence 97\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Dining Philosophers 98\u003c\/p\u003e \u003cp\u003eMutexes and Semaphores 101\u003c\/p\u003e \u003cp\u003eInterprocess Communications 103\u003c\/p\u003e \u003cp\u003eThe Main Event 106\u003c\/p\u003e \u003cp\u003eUnix Sockets 107\u003c\/p\u003e \u003cp\u003eFile and Directory Handling 109\u003c\/p\u003e \u003cp\u003eClosures 112\u003c\/p\u003e \u003cp\u003eThreading in the Main 114\u003c\/p\u003e \u003cp\u003eCreating Streams 115\u003c\/p\u003e \u003cp\u003eCryptographic Hashing 116\u003c\/p\u003e \u003cp\u003eCreating Threads 117\u003c\/p\u003e \u003cp\u003eSummary 118\u003c\/p\u003e \u003cp\u003eExercises 119\u003c\/p\u003e \u003cp\u003eAdditional Resources 119\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Clients and Servers 121\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePlanning 123\u003c\/p\u003e \u003cp\u003eNetwork Programming 125\u003c\/p\u003e \u003cp\u003eProgramming Sockets 128\u003c\/p\u003e \u003cp\u003eRust TCP Server 131\u003c\/p\u003e \u003cp\u003eHandling Requests 134\u003c\/p\u003e \u003cp\u003eOperating System Calls 137\u003c\/p\u003e \u003cp\u003eSummary 139\u003c\/p\u003e \u003cp\u003eExercises 140\u003c\/p\u003e \u003cp\u003eAdditional Resources 140\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Client-Side Applications 141\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eEncryption 142\u003c\/p\u003e \u003cp\u003eEncryption Algorithms 144\u003c\/p\u003e \u003cp\u003eGoing Hybrid 145\u003c\/p\u003e \u003cp\u003eEncryption Algorithms 147\u003c\/p\u003e \u003cp\u003eTransport Layer Security (TLS) 147\u003c\/p\u003e \u003cp\u003eTLS Server 151\u003c\/p\u003e \u003cp\u003eRemote Access Client 154\u003c\/p\u003e \u003cp\u003eCreating the Connection 156\u003c\/p\u003e \u003cp\u003eValidating Input 157\u003c\/p\u003e \u003cp\u003eRegular Expressions 157\u003c\/p\u003e \u003cp\u003eThe Final Function 159\u003c\/p\u003e \u003cp\u003eSummary 163\u003c\/p\u003e \u003cp\u003eExercises 164\u003c\/p\u003e \u003cp\u003eAdditional Resources 164\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Going Relational 165\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eApplication Architectures 166\u003c\/p\u003e \u003cp\u003en-Tier Applications 167\u003c\/p\u003e \u003cp\u003eMicroservices 169\u003c\/p\u003e \u003cp\u003eModel-View-Controller 171\u003c\/p\u003e \u003cp\u003eDatabases 172\u003c\/p\u003e \u003cp\u003eStructured Query Language 172\u003c\/p\u003e \u003cp\u003eServer or Embedded 175\u003c\/p\u003e \u003cp\u003eAccessing Databases 176\u003c\/p\u003e \u003cp\u003eWriting a Database Program 177\u003c\/p\u003e \u003cp\u003eMain and Modules 178\u003c\/p\u003e \u003cp\u003eDatabase Functions 183\u003c\/p\u003e \u003cp\u003eAdding Records 184\u003c\/p\u003e \u003cp\u003eListing Records 186\u003c\/p\u003e \u003cp\u003eSummary 189\u003c\/p\u003e \u003cp\u003eExercises 190\u003c\/p\u003e \u003cp\u003eAdditional Resources 190\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: NO(SQL) Going 191\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAssertions 192\u003c\/p\u003e \u003cp\u003eDesign by Contract 195\u003c\/p\u003e \u003cp\u003eNoSQL 198\u003c\/p\u003e \u003cp\u003eWorking with MongoDB 202\u003c\/p\u003e \u003cp\u003eInserting Data 202\u003c\/p\u003e \u003cp\u003eReading in Data from a File 206\u003c\/p\u003e \u003cp\u003ePopulating the Database 207\u003c\/p\u003e \u003cp\u003eRetrieving Values 209\u003c\/p\u003e \u003cp\u003eSummary 213\u003c\/p\u003e \u003cp\u003eExercises 214\u003c\/p\u003e \u003cp\u003eAdditional Resources 214\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Web Communications 215\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eStyle Guides 216\u003c\/p\u003e \u003cp\u003eHypertext Transfer Protocol 219\u003c\/p\u003e \u003cp\u003eProgrammatic Communication 222\u003c\/p\u003e \u003cp\u003eWeb Communication Over TLS 227\u003c\/p\u003e \u003cp\u003eClient Communication 229\u003c\/p\u003e \u003cp\u003eJumping Ahead 232\u003c\/p\u003e \u003cp\u003eJumping Back 237\u003c\/p\u003e \u003cp\u003eSummary 238\u003c\/p\u003e \u003cp\u003eExercises 239\u003c\/p\u003e \u003cp\u003eAdditional Resources 240\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: Web Server 241\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOffensive vs. Defensive Programming 242\u003c\/p\u003e \u003cp\u003eWeb Application Communications 245\u003c\/p\u003e \u003cp\u003eWeb Application Parameters 245\u003c\/p\u003e \u003cp\u003eAsynchronous JavaScript and XML 248\u003c\/p\u003e \u003cp\u003eRepresentational State Transfer 249\u003c\/p\u003e \u003cp\u003eAPIs in Node.js and Python 250\u003c\/p\u003e \u003cp\u003eAPI Server in Rust 252\u003c\/p\u003e \u003cp\u003eRust Rocket 255\u003c\/p\u003e \u003cp\u003eSummary 262\u003c\/p\u003e \u003cp\u003eExercises 262\u003c\/p\u003e \u003cp\u003eAdditional Resources 263\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Getting to the System 265\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eExtending Functionality 266\u003c\/p\u003e \u003cp\u003eWindows Registry 272\u003c\/p\u003e \u003cp\u003eProgrammatic Access to the Registry 275\u003c\/p\u003e \u003cp\u003eUsing Rust to Access the Registry 277\u003c\/p\u003e \u003cp\u003eSystem Information with Rust 282\u003c\/p\u003e \u003cp\u003ePersistence (for Fun) 287\u003c\/p\u003e \u003cp\u003eSummary 289\u003c\/p\u003e \u003cp\u003eExercises 290\u003c\/p\u003e \u003cp\u003eAdditional Resources 290\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Device Programming 291\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLogging 292\u003c\/p\u003e \u003cp\u003eUsing syslog 292\u003c\/p\u003e \u003cp\u003eUsing Windows Event Logs 299\u003c\/p\u003e \u003cp\u003eWorking with Raspberry Pi 305\u003c\/p\u003e \u003cp\u003eLighting Lights 310\u003c\/p\u003e \u003cp\u003eReading GPIO 315\u003c\/p\u003e \u003cp\u003eSummary 318\u003c\/p\u003e \u003cp\u003eExercises 319\u003c\/p\u003e \u003cp\u003eAdditional Resources 319\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Collecting Stuff 321\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eArrays and Vectors 322\u003c\/p\u003e \u003cp\u003eLinked Lists 329\u003c\/p\u003e \u003cp\u003eStacks 333\u003c\/p\u003e \u003cp\u003eQueues 336\u003c\/p\u003e \u003cp\u003eSorting 337\u003c\/p\u003e \u003cp\u003eSearch Trees 340\u003c\/p\u003e \u003cp\u003eSummary 345\u003c\/p\u003e \u003cp\u003eExercises 346\u003c\/p\u003e \u003cp\u003eAdditional Resources 346\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Odds and Sods 347\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnit Testing 348\u003c\/p\u003e \u003cp\u003eTesting Types 350\u003c\/p\u003e \u003cp\u003eTest Plans 351\u003c\/p\u003e \u003cp\u003eUnit Tests 353\u003c\/p\u003e \u003cp\u003eRecursion 360\u003c\/p\u003e \u003cp\u003eMachine Learning 364\u003c\/p\u003e \u003cp\u003eChatbots 366\u003c\/p\u003e \u003cp\u003eNeural Networks 369\u003c\/p\u003e \u003cp\u003eSummary 371\u003c\/p\u003e \u003cp\u003eExercises 373\u003c\/p\u003e \u003cp\u003eAdditional Resources 373\u003c\/p\u003e \u003cp\u003eIndex 375\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eAbout the Author\u003c\/b\u003e  \u003c\/p\u003e\u003cp\u003e\u003cb\u003eRic Messier\u003c\/b\u003e is Senior Information Security Consultant with FireEye Mandiant. He is an author, consultant, and educator who holds GCIH, GSEC, CEH, and CISSP certifications and has published several books on information security and digital forensics. He is familiar with a wide variety of languages, including BASIC, Pascal, C, C++, C#, Rexx, Perl, Python, Java, Go, Swift, and Objective-C. \u003c\/p\u003e\u003cp\u003e\u003cb\u003eVisit us at wrox.com for free code samples.\u003c\/b\u003e   \u003c\/p\u003e\u003cp\u003e\u003cb\u003eA practical guide for quickly getting started with the Rust programming language\u003c\/b\u003e  \u003c\/p\u003e\u003cp\u003eRic Messier delivers a concise step-by-step guide to the essentials of the Rust programming language. The book is designed to allow the reader to begin programming useful tools almost immediately. It takes a practical approach to teaching Rust by showing the language in the context of similar programming languages. \u003c\/p\u003e\u003cp\u003eEschewing a dry and theoretical approach, the book helps you jump right into the language with interesting programs drawn from classic computer science problems. You’ll discover how to make the most use of Rust’s efficiency and performance without encountering the errors and crashes you might experience in other common languages like C and C++. \u003c\/p\u003e\u003cp\u003eThe book covers the language’s fundamentals, including language syntax, data types and structures, and other features and techniques for developing programs. It discusses Rust’s rich type system and ownership model that helps you guarantee memorysafety and thread-safety, eliminating many classes of bugs at compile-time. \u003c\/p\u003e\u003cp\u003eThis practical and instructive book teaches you:\u003cbr\u003e \u003c\/p\u003e\u003cul\u003e \u003cli\u003eTo take advantage of Rust’s blazing speed and memory-efficiency\u003c\/li\u003e \u003cli\u003eTo use the language for embedded devices and how to integrate it with other languages\u003c\/li\u003e \u003cli\u003eSkip the “Hello, world” shenanigans and skip right to practical programming techniques you can put to use immediately\u003c\/li\u003e \u003c\/ul\u003e  \u003cp\u003e\u003cb\u003eWrox Beginning guides\u003c\/b\u003e are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that guides you through all the techniques involved.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47988799537381,"sku":"NP9781119712978","price":50.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119712978.jpg?v=1761781636","url":"https:\/\/k12savings.com\/products\/beginning-rust-programming-isbn-9781119712978","provider":"K12savings","version":"1.0","type":"link"}