All Projects → cggallant → WebAssembly-in-Action

cggallant / WebAssembly-in-Action

Licence: other
Source code for the book "WebAssembly in Action" (https://www.manning.com/books/webassembly-in-action)

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
WebAssembly
147 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to WebAssembly-in-Action

Opus Stream Decoder
Instantly decode Ogg Opus audio streams in chunks with JavaScript & WebAssembly (Wasm)
Stars: ✭ 80 (+81.82%)
Mutual labels:  wasm, emscripten
Dcmjs
dcmjs is a javascript cross-compile of dcmtk (dcmtk.org).
Stars: ✭ 92 (+109.09%)
Mutual labels:  wasm, emscripten
Wasmer
🚀 The leading WebAssembly Runtime supporting WASI and Emscripten
Stars: ✭ 11,047 (+25006.82%)
Mutual labels:  wasm, emscripten
rotation master
Provide conversion between the major representations of 3D rotation and visualize the orientation of a rigid body
Stars: ✭ 157 (+256.82%)
Mutual labels:  wasm, emscripten
Yew
Yew is a modern Rust framework for creating multi-threaded front-end web apps with WebAssembly.
Stars: ✭ 18,243 (+41361.36%)
Mutual labels:  wasm, emscripten
Wasmjit
Small Embeddable WebAssembly Runtime
Stars: ✭ 1,063 (+2315.91%)
Mutual labels:  wasm, emscripten
Assortedwidgets
OpenGL GUI library
Stars: ✭ 92 (+109.09%)
Mutual labels:  wasm, emscripten
Deepminer
deepMiner webminer proxy (update for cryptoNight R)
Stars: ✭ 497 (+1029.55%)
Mutual labels:  wasm, emscripten
Webassembly Examples
From Simple To Complex. A complete collection of webassembly examples.
Stars: ✭ 177 (+302.27%)
Mutual labels:  wasm, emscripten
Squark
Rust frontend framework, for web browser and more.
Stars: ✭ 162 (+268.18%)
Mutual labels:  wasm, emscripten
Xwasm
[Work In Progress] WebAssembly Packager and WASM tooling for modern frontend
Stars: ✭ 45 (+2.27%)
Mutual labels:  wasm, emscripten
vgg runtime
VGG Runtime for loading and running designs as apps.
Stars: ✭ 19 (-56.82%)
Mutual labels:  wasm, emscripten
Cppwasm Book
📚 WebAssembly friendly programming with C/C++ -- Emscripten practice
Stars: ✭ 956 (+2072.73%)
Mutual labels:  wasm, emscripten
Sql.js
A javascript library to run SQLite on the web.
Stars: ✭ 9,594 (+21704.55%)
Mutual labels:  wasm, emscripten
Cib
clang running in browser (wasm)
Stars: ✭ 685 (+1456.82%)
Mutual labels:  wasm, emscripten
Emscripten Docker
Docker image with Emscripten to compile ASM.js and WebAssembly
Stars: ✭ 92 (+109.09%)
Mutual labels:  wasm, emscripten
Edge Sql
Cloudflare Workers providing a SQL API
Stars: ✭ 429 (+875%)
Mutual labels:  wasm, emscripten
Camaro
camaro is an utility to transform XML to JSON, using Node.js binding to native XML parser pugixml, one of the fastest XML parser around.
Stars: ✭ 438 (+895.45%)
Mutual labels:  wasm, emscripten
Modern Wasm Starter
🛸 Run C++ code on web and create blazingly fast websites! A starter template to easily create WebAssembly packages using type-safe C++ bindings with automatic TypeScript declarations.
Stars: ✭ 140 (+218.18%)
Mutual labels:  wasm, emscripten
python-wasm
Build scripts and configuration for building CPython for Emscripten
Stars: ✭ 606 (+1277.27%)
Mutual labels:  wasm, emscripten

Welcome to the "WebAssembly in Action" source code

This repository holds the companion code for the book "WebAssembly in Action" in the original-code folder.

One of the tools used in the book is version 1.38.45 of the Emscripten toolkit. Because the toolkit is constantly being improved, some of the items shown in the book need to be adjusted if you wish to use some of the more recent versions of the toolkit.

The code in the following folder has been updated to work with Emscripten 2.0.11: updated-code

 

Bonus content

If you're interested, I’ve written several articles exploring WebAssembly use beyond what was taught in the book:

  • "The import statement with an Emscripten-generated WebAssembly module in Vue.js"

    This article shows you how you can build your Emscripten-generated WebAssembly module for use with Vue.js. It then shows you two approaches that you can use to load the module into your application.

  • "Extending Python's Simple HTTP Server"

    In the book, I used Python's Simple HTTP Server as a local web server because it was convenient due to Emscripten's need of it for its installation. At the time, I wasn't aware that you could extend Python's web server which would have made things a bit easier during your setup because you can include the WebAssembly Media Type in the file rather than having to edit one of Python's files.

    This article shows you how to extend Python’s Simple HTTP Server. It’s also a precursor to my next article "WebAssembly threads in Firefox" because that article will need two response headers returned which isn't possible when using Python’s web server.

  • "WebAssembly threads in Firefox"

    In the book I show you how to use WebAssembly threads but, at the time of the book's writing, they were only available in Firefox behind a flag. They're no longer behind a flag but Firefox has added a requirement: To enable the SharedArrayBuffer, you need to include two response headers.

    This article walks you through returning the response headers, including the crossorigin attribute, and using WebAssembly threads to convert a user-supplied image to greyscale.

    At the moment, this is Firefox specific but will soon be a requirement for all browsers that support WebAssembly threads including Chrome for Android (January 2021), Firefox for Android (soon), and Chrome desktop (March 2021).

  • "Using WebAssembly modules in C#"

    In my book I show you how to use an Emscripten-generated WebAssembly module in the browser and on the server in Node.js. I also mention the WebAssembly System Interface (WASI) whose aim is to create a standard approach to running WebAssembly modules outside the browser in a safe way.

    While there were a lot of exciting things being worked on with WASI at the time, unfortunately, it wasn’t until after the book went to production that an early preview of the Wasmtime runtime was announced for .NET Core.

    I wrote this article to show you how your C# code can load and use a WebAssembly module via the Wasmtime runtime for .NET. The article also covers how to create custom model validation with ASP.NET Core MVC.

  • "Blazor WebAssembly and the Dovico Time Entry Status app"

    Over the past few weeks, I've been digging into WebAssembly from a C# perspective for an article that I'm writing. To aid in that learning, I decided to use some research time that my company gave me to dig into Blazor WebAssembly by rewriting a small Java application that I built in 2011.

    This article walks you through creating the Dovico Time Entry Status app using Blazor WebAssembly.

  • "Hosting Uno Platform WebAssembly apps on Azure Static Web Apps"

    This week there was an announcement that the Azure Static Web Apps service came out of preview.

    As the name implies, Azure Static Web Apps give you a way to host static web apps and it comes with many features including global distribution of your content and free SSL certificates to name a couple.

    Static web apps are applications where all the work happens in the browser and the app is decoupled from server-side code. Because an Uno Platform WebAssembly application is all client-side, it's a static web app and can take advantage of the Azure Static Web Apps service.

    I was honored with the opportunity to create an article that expands on some documentation that the Uno Platform already had on Azure Static Web Apps. In the article, I walk you through creating a GitHub repository, creating an Azure Static Web App, and then linking the two together. Then you create an Uno Platform WebAssembly application, check it into your repository, and see the Azure Static Web App automatically detect the change and deploy your new code.

 

 

Supporting this book

Many people buy books based on referrals or recommendations of those they trust. I would appreciate it if you could add your rating or review on any of the following websites:

Don't yet have your own copy of the book? You can buy it from many book sellers including:

Providing feedback

If you'd like to discuss the book's text, you can submit issues via the liveBook: https://livebook.manning.com/book/webassembly-in-action/about-this-book/

You can also find me here:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].