“Practical WebAssembly” by Sendil Kumar Nellaiyapen

It might sound a bit harsh, but in its current incarnation I frankly I don't see the purpose of this book.

“Practical WebAssembly” by Sendil Kumar Nellaiyapen

This post is part of my Book reviews series, where I share thoughts and impressions on the books I read.

"Practical WebAssembly" is authored by Sendil Nellaiyapen with editorial review from Sufyan bin Uzayr and published by Packt.

💡Topic

WebAssembly, also known as WASM, and how you can work with it using Rust. 

📖Content

10 Chapters and 204 pages which cover the fundamentals of WebAssembly, the tooling that existed for it at the time of writing (2018), and different mechanics that apply to Rust. 

From the title, you might expect this to be a Rust-focused exploration of WASM, but actually more than half of it is dedicated to generalities about WASM as well as other tools that exist for working with it, especially Emsricpten and Binaryen. 

👩‍💻🧑‍💻 Who is this book for?

Developers interested in learning more about WebAssembly, with some Rust notions presented as well.

👍Likes

The parts where the bytecode of WASM is explained bit by bit was interesting for me, also the explanations on the mechanics of memory management between JavaScript and Rust. 

I also liked the explanations and suggestions on how to minimize the size of the generated WebAssembly module. 

The book is quite short, which I think as a plus when it comes to this type of introductory technical books. 

👎Dislikes

I personally find the way of displaying code (dark grey boxes for each row) very difficult to read vs. just having one big grey box around all the code.

Roughly half of the book has nothing to do with Rust, so I think the title is misleading and that made me quite dissapointed. 

Whenever a new CLI tool is presented, a full page of the manual is displayed (the output of calling --help), which for me is a waste of space and not very helpful at all. 

🚧 Improvements I would suggest

Remove the man pages and also remove the "Technical requirements" headings at the start of each chapter. 

Remove the Emscripten section completely, as it relates only to C and C++ and is not helpful at all when working with Rust.

Add specific examples of mini-projects that you can do with Rust and WASM, similar to how Tim McNamara does it the Manning Publications Co.  "Rust in Action" book. 

🤔Final Thoughts

It might sound a bit harsh, but in its current incarnation I frankly I don't see the purpose of this book. The majority of the knowledge presented in it can be easily found online with a simple google search, so there's nothing new or really valuable that the author adds.

I was not expecting anything the likes of Eric Smith "Game Development with Rust and WebAssemly", also from Packt and which I'm going to be reviewing soon as well, but at least it should have contained more day to day showcases of how to use Rust together with WebAssemly.

I'm very grateful nonetheless to Sendil Nellaiyapen for taking the time and effort to write this book though 🙏, and hopefully if there will ever be a 2nd edition it can take a few learnings from books like "Rust in Action" as I mentioned already.