Title PageCopyright and CreditsCreative Projects for Rust ProgrammersDedicationAbout PacktWhy subscribe?ContributorsAbout the authorAbout the reviewerPackt is searching for authors like youPrefaceWho this book is forWhat this book coversTo get the most out of this bookDownload the example code filesDownload the color imagesConventions usedGet in touchReviewsRust 2018: ProductivityTechnical requirementsUnderstanding the different editions of RustThe projectsWorking through the examples in this bookExploring some utility cratesPseudo-random number generators – the rand crateLogging – the log crateInitializing static variables at runtime – the lazy_static crateParsing the command line – the structopt crateSummaryQuestionsStoring and Retrieving DataTechnical requirementsProject overviewReading a TOML fileUsing toml_dynamicUsing toml_staticReading and writing a JSON fileThe json_dynamic projectThe json_static projectReading an XML fileAccessing databasesAccessing a SQLite databaseImplementing the projectAccessing a PostgreSQL databaseImplementation of the projectStoring and retrieving data from a Redis storeImplementing the projectPutting it all togetherSummaryQuestionsCreating a REST Web ServiceTechnical requirementsThe REST architectureProject overviewEssential background theory and contextBuilding a stub of a REST web serviceRunning and testing the serviceGetting a resource using the GET methodSending a named resource to the server using the PUT methodSending a new resource to the server using the POST methodDeleting a resource using the DELETE methodSending an invalid commandExamining the codeBuilding a complete web serviceDownloading a fileUploading a string to a specified fileUploading a string to a new fileDeleting a fileExamining the codeBuilding a stateful serverHow to have a stateful serverThe API of this serviceTesting the serviceImplementing the databaseHandling queriesReturning JSON dataSummaryQuestionsFurther readingCreating a Full Server-Side Web AppTechnical requirementsDefinition of a web appUnderstanding the behavior of a web appProject overviewUsing the Tera template engineA simple list of personsThe templates folderThe other Rust handlersA CRUD applicationThe JavaScript codeThe HTML codeThe Rust codeThe db_access.rs changesThe main.rs changesHandling an application with authenticationThe implementationThe HTML codeThe JavaScript codeThe mock database codeThe main functionSummaryQuestionsFurther readingCreating a Client-Side WebAssembly App Using YewTechnical requirementsIntroducing WasmUnderstanding the MVC architectural patternImplementing two toy web appsWhat is the MVC pattern?The modelThe viewThe controllerView implementationController implementationUnderstanding the MVC architectureProject overviewGetting startedThe incr appThe adder appThe login appOrganization of the projectThe db_access.rs fileThe main.rs fileThe login.rs fileThe yauth appUnderstanding the behavior of the appOrganization of the projectThe persons_list.rs fileWhy an empty collection wouldn't be good for filtered_personsThe one_person.rs fileA web app accessing a RESTful serviceThe persons_db appThe yclient appThe imported cratesThe source filesThe changes to the modelsA typical client/server requestSummaryQuestionsFurther readingCreating a WebAssembly Game Using QuicksilverTechnical requirementsProject overviewUnderstanding the animation loop architectureImplementing the ski projectUnderstanding the code behind thisImplementing the silent_slalom projectImplementing the assets_slalom projectAnalyzing the codeSummaryQuestionsFurther readingCreating a Desktop Two-Dimensional Game Using ggezTechnical requirementsProject overviewUnderstanding linear algebraImplementing the gg_ski projectThe main functionPatterns of input handlingInput handling in the gg_ski projectOther differences with quicksilverName of the traitThe type of contextThe new methodThe angle's unit of measurementHow to specify the FPS rateHandling the ski steeringComputation of new position and speedDrawing the backgroundDrawing composite shapesEnding the draw methodImplementing the gg_silent_slalom projectImplementing the gg_assets_slalom projectImplementing the gg_whac projectThe assetsThe general structure of the application and eventsOther fields of the modelDefining a widgetSummaryQuestionsFurther readingUsing a Parser Combinator for Interpreting and CompilingTechnical requirementsProject overviewIntroducing CalcUnderstanding formal languages and their parsersRegular languagesContext-free languagesContext-dependent languagesUsing Nom to build parsersLearning about compiler-compilers and parser combinatorsLearning the basics of NomParsing an alternative of charactersParsing a sequence of charactersParsing a fixed stringMapping parsed items to other objectsCreating custom parsing resultsParsing a variable textRepeating a parserThe calc_parser projectUnderstanding the main.rs source fileLearning about the parser.rs source fileUnderstanding the types needed by the parserLooking at the parser codeThe calc_analyzer projectChecking the variables of the parsed programUnderstanding the main.rs fileLooking at the symbol_table.rs fileGlancing at the analyzer.rs fileThe calc_interpreter project Learning about the main.rs fileGlancing at the symbol_table.rs fileUnderstanding the executor.rs fileThe calc_compiler projectGlancing at the main.rs fileUnderstanding the compiler.rs fileSummaryQuestionsFurther readingCreating a Computer Emulator Using NomTechnical requirementsProject overviewIntroducing a very simple machine languageThe most important concepts relating to machine languageExtending our machine languageWriting a very simple programA more complex program – the sieve of EratosthenesDefining a byte-addressing machine languageCoping with the endianness issueThe nom_byte_machine projectUnderstanding the main.rs source fileUsing the Nom libraryThe emulator.rs source fileThe parsing_interpreter.rs source fileThe translator.rs source fileThe nom_disassembler projectRunning the projectExamining the source codeGenerating disassembly code that is useful for debuggingGenerating disassembly code that is useful for reassemblingSummaryQuestionsCreating a Linux Kernel ModuleTechnical requirementsProject overviewUnderstanding kernel modulesPreparing the environmentA boilerplate moduleBuilding and running the kernel moduleThe build commandsThe source code of the boilerplate moduleUsing global variablesAllocating memoryA character deviceBuilding the character deviceThe source code of the dots moduleThe global informationThe initialization callThe cleanup callThe reading functionSummaryQuestionsFurther readingThe Future of RustIDEs and interactive programmingCrate maturityAsynchronous programmingOptimizationThe const generics featureEmbedded systemsSummaryAssessmentsChapter 1Chapter 2Chapter 3Chapter 4Chapter 5Chapter 6Chapter 7Chapter 8Chapter 9Chapter 10Other Books You May EnjoyLeave a review - let other readers know what you think