Posts made by admin
Google IO: WebAssembly for Web Developers
🐘+🦀+🕸 php-ext-wasm: Migrating from wasmi to Wasmer
How php-ext-wasm has migrated from wasmi to Wasmer and now enjoys a 29x speedup, is faster than PHP itself, and is closer to native speed.
The PHP virtual machine (VM) is Zend Engine. To write an extension, one needs to develop in C or C++. The extension was simple C bindings to a Rust library I also wrote. At that time, this Rust library was using wasmi for the WebAssembly VM. I knew that wasmi wasn’t the fastest WebAssembly VM in the game, but the API is solid, well-tested, it compiles quickly, and is easy to hack. All the requirements to start a project!
Programming using Web Assembly
As I described in a previous post, Web Assembly is intended as a target language for compilers, not as a general-purpose language for programmers. In other words, you’re not supposed to write programs in Web Assembly itself but instead write in a higher-level language then compile it into Web Assembly.
I first met assembly languages on 8-bit microcomputers where they were used to write software that ran as fast as possible on what was by modern standards very slow hardware.
Even though Web Assembly is not intended as an application programming language, I wanted to have a go at programming with it, so I coded a simple module that calculates the Mandelbrot Set to be rendered on an HTML canvas.
Read the article: https://medium.com/@alexc73/programming-using-web-assembly-c4c73a4e09a9
Announcing WAPM: The WebAssembly Package Manager
Today, we are releasing a new tool that will help you use WebAssembly anywhere: WAPM (aka WebAssembly Package Manager).
This release includes:
A command line application: wapm, included when you install Wasmer
A website and package registry: wapm.io
String manipulation — WebAssembly
Read the article: https://blog.usejournal.com/string-manipulation-webassembly-5011e64c6b76
Enigma is a crypto library designed to work efficiently on browsers by leveraging on cool technologies such as WebCrypto and WebAssembly. Our aim is to provide the major crypto standard algorithms as well as a suite of utilities to simplify the use to the “standard” developer.
In my previous articles I talked about how WebAssembly allows you to bring the library ecosystem of C/C++ to the web. One app that makes extensive use of C/C++ libraries is squoosh, our web app that allows you compress images with a variety of codecs that have been compiled from C++ to WebAssembly.
In my experience, most performance problems on the web are caused by forced layout and excessive paint but every now and then an app needs to do a computationally expensive task that takes a lot of time. WebAssembly can help here.
Emscripting a C library to Wasm
Sometimes you want to use a library that is only available as C or C++ code. Traditionally, this is where you give up. Well, not anymore, because now we have Emscripten and WebAssembly (or Wasm)!