دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 1
نویسندگان: Mike Rourke
سری:
ISBN (شابک) : 9781788997379, 1788997379
ناشر: Packt Publishing
سال نشر: 2018
تعداد صفحات: 0
زبان: English
فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 8 مگابایت
در صورت تبدیل فایل کتاب Learn WebAssembly: build web applications with native performance using wasm and c/c++ به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب WebAssembly را بیاموزید: با استفاده از wam و c/c++ برنامه های وب با عملکرد بومی بسازید نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
در اولین راهنمای قطعی WebAssembly، خواهید آموخت که چگونه می توانید از این فناوری جدید برای شکستن موانع فعلی توسعه وب و ایجاد کلاس کاملاً جدیدی از برنامه های کاربردی استفاده کنید. ویژگی های کلیدی تولید ماژول های WebAssembly از C و C++ با استفاده از Emscripten و تعامل با این ماژول ها در مرورگر یاد بگیرید چگونه از WebAssembly خارج از مرورگر استفاده کنید و ماژول ها را با استفاده از Node.js بارگیری کنید یک برنامه کاربردی با کارایی بالا با استفاده از C و WebAssembly بسازید و یک C++ موجود را پورت کنید. بازی به WebAssembly با استفاده از Emscripten شرح کتاب WebAssembly یک فناوری کاملاً جدید است که نشان دهنده یک تغییر پارادایم در توسعه وب است. این کتاب قصد دارد به برنامه نویسان آموزش دهد که چگونه از این فناوری برای نوشتن برنامه های کاربردی با کارایی بالا که در مرورگر اجرا می شوند، استفاده کنند. این کتاب شما را با مفاهیم قدرتمند WebAssembly WebAssembly آشنا می کند که به شما کمک می کند تا برنامه های کاربردی وب ناب و قدرتمند با عملکرد بومی بنویسید. شما با تکامل برنامه نویسی وب، وضعیت امروز و آنچه می توان با ظهور و انتشار WebAssembly انجام داد، شروع خواهید کرد. ما نگاهی به سفر از جاوا اسکریپت به asm.js تا WebAssembly می اندازیم. سپس به تجزیه و تحلیل آناتومی یک ماژول WebAssembly و رابطه بین فرمت های باینری و متن، همراه با API جاوا اسکریپت مربوطه می پردازیم. علاوه بر این، شما تمام تکنیکهایی را که برای ساختن یک برنامه کاربردی با کارایی بالا با استفاده از C و WebAssembly آموختهاید، پیادهسازی میکنید و سپس یک بازی موجود نوشته شده در C++ را به WebAssembly با استفاده از Emscripten پورت میکنید. در پایان این کتاب، شما به خوبی برای ایجاد برنامه ها و بازی های با کارایی بالا برای وب با استفاده از WebAssembly مجهز خواهید شد. آنچه یاد خواهید گرفت یاد بگیرید چگونه WebAssembly و عناصر مرتبط با آن (فرمت متن، ماژول و JavaScript API) ایجاد، بارگیری و اشکال زدایی یک ماژول WebAssembly (ویرایشگر و کامپایلر/زنجیره ابزار) ساخت یک برنامه کاربردی با کارایی بالا با استفاده از C و WebAssembly مجموعه ویژگی های WebAssembly را با استفاده از Emscripten با انتقال یک بازی نوشته شده در C++ گسترش دهید. ویژگی های آینده WebAssembly، ادغام Node.js و روش های تلفیقی جایگزین را کاوش کنید اگر یک توسعه دهنده وب یا برنامه نویس C/C++ هستید که مشتاق استفاده از فناوری قدرتمند هستید. از WebAssembly برای ساخت برنامه های کاربردی وب با کارایی بالا، پس این کتاب برای شما مناسب است.
In the first definitive guide on WebAssembly, you'll learn how you can wield this new technology to break through the current barriers of web development and build an entirely new class of performant applications . Key Features Generate WebAssembly modules from C and C++ using Emscripten and interact with these modules in the browser Learn how to use WebAssembly outside of the browser and load modules using Node.js Build a high-performance application using C and WebAssembly and port an existing C++ game to WebAssembly using Emscripten Book Description WebAssembly is a brand-new technology that represents a paradigm shift in web development. This book aims to teaches programmers how to leverage this technology to write high- performance applications that run in the browser. This book will introduces you to the powerful WebAssembly concepts of WebAssembly that willto help you write lean and powerful web applications with native performance. You will start with the evolution of web programming, the state of things today, and what can be done with the advent and release of WebAssembly. We take a look at the journey from JavaScript to asm.js to WebAssembly. We then move on to analyzinge the anatomy of a WebAssembly module and the relationship between the binary and text formats, along with the corresponding JavaScript API. Further on, weyou'll implement all the techniques you've learned by to building a high-performance application using C and WebAssembly, and then port an existing game written in C++ to WebAssembly using Emscripten. By the end of this book, you would will be well-equipped to create high-performance applications and games for the web using WebAssembly. What you will learn Learn how WebAssembly came to be and its associated elements (text format, module, and JavaScript API) Create, load, and debug a WebAssembly module (editor and compiler/toolchain) Build a high-performance application using C and WebAssembly Extend WebAssembly's feature set using Emscripten by porting a game written in C++ Explore upcoming features of WebAssembly, Node.js integration, and alternative compilation methods Who this book is for If you are a web developer or C/C++ programmer keen to leverage the powerful technology of WebAssembly to build high-performance web applications, then this book is for you.
Title Page Copyright and Credits Learn WebAssembly Dedication PacktPub.com Why subscribe? PacktPub.com Contributors About the author About the reviewers Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews What is WebAssembly? The road to WebAssembly The evolution of JavaScript Google and Native Client Mozilla and asm.js WebAssembly is born What exactly is WebAssembly and where can I use it? Official definition Binary instruction format Portable target for compilation The core specification Language concepts Semantic phases The JavaScript and Web APIs So will it replace JavaScript? Where can I use it? What languages are supported? C and C++ Rust Other languages What are the limitations? No garbage collection No direct DOM access No support in older browsers How does it relate to Emscripten? Emscripten's role The EMSDK and Binaryen Summary Questions Further reading Elements of WebAssembly - Wat, Wasm, and the JavaScript API Common structure and abstract syntax Wat Definitions and S-expressions Values, types, and instructions Role in the development process Binary format and the module file (Wasm) Definition and module overview Module sections The JavaScript and Web APIs WebAssembly store and object caches Loading a module and the WebAssembly namespace methods WebAssembly objects WebAssembly.Module WebAssembly.Instance WebAssembly.Memory WebAssembly.Table WebAssembly errors (CompileError, LinkError, RuntimeError) Connecting the dots with WasmFiddle What is WasmFiddle? C code to Wat Wasm to JavaScript Summary Questions Further reading Setting Up a Development Environment Installing the development tooling Operating systems and hardware macOS Ubuntu Windows Package managers Homebrew for macOS Apt for Ubuntu Chocolatey for Windows Git Installing Git on macOS Installing Git on Ubuntu Installing Git on Windows Node.js nvm Installing nvm on macOS Install nvm on Ubuntu Installing nvm on Windows Installing Node.js using nvm GNU make and rimraf GNU Make on macOS and Ubuntu Installing GNU Make on macOS Installing GNU Make on Ubuntu Installing GNU make on Windows Installing rimraf VS Code Installing Visual Studio Code on macOS Installing Visual Studio Code on Ubuntu Installing VS Code on Windows Configuring VS Code Managing settings and customization Extensions overview Configuration for C/C++ and WebAssembly Installing C/C++ for VS Code Configuring C/C++ for VS Code WebAssembly Toolkit for VSCode Other useful extensions Auto rename tag Bracket pair colorizer Material Icon theme and Atom One Light theme Setting up for the web Cloning the book examples repository Installing a local server Validating your browser Validating Google Chrome Validating Mozilla Firefox Validating other browsers Other tools iTerm2 for macOS Terminator for Ubuntu cmder for Windows Zsh and Oh-My-Zsh Summary Questions Further reading Installing the Required Dependencies The development workflow Steps in the workflow Integrating Tooling into the workflow Emscripten and the EMSDK Emscripten overview Where does the EMSDK fit in? Installing the prerequisites Common prerequisites Installing the prerequisites on macOS Installing the prerequisites on Ubuntu Installing the prerequisites on Windows Installing and configuring the EMSDK Installation process across all platforms Installation on macOS and Ubuntu Installation and configuration on Windows Configuration in VS Code Testing the compiler The C code Compiling the C code Summary Questions Further reading Creating and Loading a WebAssembly Module Compiling C with Emscripten glue code Writing the example C code Compiling the example C code Outputting HTML with glue code Outputting glue code with no HTML Loading the Emscripten module Pre-generated loading code Writing custom loading code Compiling C without the glue code C code for WebAssembly Compiling with a Build Task in VS Code Fetching and instantiating a Wasm file Common JavaScript loading code The HTML page Serving it all up Summary Questions Further reading Interacting with JavaScript and Debugging The Emscripten module versus the WebAssembly object What is the Emscripten module? Default methods in the glue code Differences with the WebAssembly object Calling compiled C/C++ functions from JavaScript Calling functions from a Module Module.ccall() Module.cwrap() C++ and name mangling Calling functions from a WebAssembly instance Calling JavaScript functions from C/C++ Interacting with JavaScript using glue code Executing strings with emscripten_run_script() Executing inline JavaScript with EM_ASM() Reusing inline JavaScript with EM_JS() Examples of using glue code The C code The HTML code Compiling and serving the result Interacting with JavaScript without glue code Passing JavaScript to C/C++ using the import object Calling imported functions in C/C++ An example without glue code The C++ code The HTML code Compiling and serving the result Advanced Emscripten features Embind File System API Fetch API Debugging in the browser High-level overview Using source maps Summary Questions Further reading Creating an Application from Scratch Cook the Books – making WebAssembly accountable Overview and functionality JavaScript libraries used Vue UIkit Lodash Data-driven documents Other libraries C and the build process Setting up the project Configuring for Node.js Adding files and folders Configuring the build step Setting up a mock API Downloading the C stdlib Wasm The final result Building the C portion Overview A note regarding workflow C file contents Declarations Linked list operations transactions operations transactions calculations Category calculations Compiling to Wasm Building the JavaScript portion Overview A note about browser compatibility Creating a Wasm instance in initializeWasm.js Interacting with Wasm in WasmTransactions.js Utilizing the API in api.js Managing global state in store.js The import and store declarations Transactions operations TransactionModal management Balances calculation Store initialization Loading the application in main.js Adding the web assets Creating the Vue components The structure of a Vue component The App component The BalancesBar The TransactionsTab The ChartsTab Running the application Validating the /src folder Start it up! Testing it out Changing initial balances Creating a new transaction Deleting an existing transaction Editing an existing transaction Testing the Charts tab Wrap up Summary Questions Further reading Porting a Game with Emscripten Overview of the game What is Tetris? The source of the source A note about porting Getting the code Building the native project The game in action The code base in depth Breaking the code into objects The constants file The piece class The constructor and draw() function The move(), rotate(), and isBlock() functions The getColumn() and getRow() functions The Board class The constructor and draw() function The isCollision() function The unite() function The displayScore() function The Game class The constructor and destructor The loop() function The main file Porting to Emscripten Preparing for porting What's changing? Adding the web assets Porting the existing code Updating the constants file Building and running the game Building with VS Code tasks Building with a Makefile Running the game Summary Questions Further reading Integrating with Node.js Why Node.js? Seamless integration Complementary technologies Development with npm Server-side WebAssembly with Express Overview of the project Express configuration Instantiating a Wasm module with Node.js Creating a mock database Interacting with the WebAssembly module Wrapping interaction in Transaction.js Transaction operations in assign-routes.js Building and running the application Building the application Starting and testing out the application Client-side WebAssembly with Webpack Overview of the project What is Webpack? Installing and configuring Webpack Dependencies overview Configuring loaders and plugins in webpack.config.js The C code Definitions and declarations The start() function The updateRectLocation() function The JavaScript code The import statements Component state Wasm initialization Component mounting Component rendering Building and running the application Testing the build Running the start script Testing WebAssembly modules with Jest The code being tested Testing configuration Tests file review Running the tests Summary Questions Further reading Advanced Tools and Upcoming Features WABT and Binaryen WABT – the WebAssembly binary toolkit Binaryen Compiling with LLVM The installation process The example code The C++ file The HTML file Compiling and running the example Online tooling WasmFiddle WebAssembly Explorer WebAssembly Studio Parallel Wasm with Web Workers Web Workers and WebAssembly Creating a worker The WebAssembly workflow Limitations in Google Chrome Overview of the code The C code The JavaScript code Defining thread execution in worker.js Interacting with Wasm in WasmWorker.js Loading the application in index.js The web assets Building and running the application Compiling the C files Interacting with the application Debugging Web Workers Upcoming features The standardization process Threads Host bindings Garbage collection Reference types Summary Questions Further reading Other Books You May Enjoy Leave a review - let other readers know what you think