Exploring WebAssembly with Hippo: A New Way to Manage and Run Code
WebAssembly (WASM) is rapidly gaining traction in the developer community, especially within cloud-native computing. With growing interest from major players like Microsoft’s Azure team, there is a need for effective tools and platforms to experiment with and deploy WebAssembly applications. Deis Labs, a subsidiary of Microsoft, has responded with the launch of the Hippo WebAssembly platform. Hippo aims to simplify the process of installing, managing, and running WebAssembly code, both in the browser and in standalone environments through the WebAssembly System Interface (WASI). This platform allows developers to quickly deploy and test their WebAssembly applications in an isolated environment, offering a streamlined workflow from development to production.
Key Features of Hippo for WebAssembly
One of the standout features of Hippo is its ability to handle multiple environments for development, staging, and production, all within a single platform. It integrates with a Git server, allowing developers to easily manage different releases and ensure that their applications are properly tested before going live. Hippo’s architecture also takes advantage of WebAssembly’s sandboxing capabilities, which means that applications running on the platform are isolated by default, only able to access the host system or external devices with explicit permissions. This ensures a secure environment for running potentially untrusted code. Furthermore, the portability of WebAssembly is a key advantage, as applications compiled for WebAssembly will run seamlessly on various systems, including Windows, macOS, Linux, and more.
Setting Up Hippo on a Development System
While Hippo is designed with cloud-native environments in mind, the current release is primarily tested on desktop systems. Developers interested in using Hippo on their local machines can follow Deis Labs’ instructions for installing it on macOS, Linux, or Windows. For example, I set up Hippo on a Windows PC running WSL2 (Windows Subsystem for Linux 2) with Ubuntu. The process was straightforward, but a few issues arose along the way. One of the first challenges was installing WAGI, the WebAssembly Application Gateway Interface, which is necessary for running Hippo locally. The installation of WAGI was easy enough but required some manual configuration on my WSL2 setup.
Overcoming Installation Hurdles on WSL2
Setting up the prerequisites to run Hippo on WSL2 proved to be the most challenging aspect. One particular hurdle was installing the build-essential
toolkit, which was required to compile certain tools like Rust. Ubuntu 20.04 on WSL2 didn’t have the correct dependencies, so I had to find an alternative package manager. After some research, I found that using aptitude
, a more flexible alternative to apt
, allowed me to install the correct versions of the required libraries. Once the setup was complete, I was able to install Rust and other dependencies necessary for running Hippo smoothly. Despite the challenges, the process was ultimately rewarding, and the ability to run WebAssembly applications locally is a powerful feature for developers experimenting with this emerging technology.