Extism v1: Run WebAssembly in Your App
Version 1 of Dylibso’s Extism is ready, marking a significant milestone in the development of this open source WebAssembly (Wasm) project. After years of Wasm’s development and theory, Extism demonstrates some of the more interesting and cool capabilities of WebAssembly that are no longer just a work in progress.
Extism acts as a framework designed to enable software end users to enhance existing applications, adding extensibility to these apps as specified by their developers through the use of WebAssembly-based plug-ins.
With Extism — after more than a few bugs have ostensibly been worked out — developers can install it as a library dependency into their application, and enable their app’s users to extend the functionality of the app with their own code. This extensibility applies to web applications, code generators, Function as a Service (FaaS) platforms, Internet of Things (IoT) systems, and more.
“Extism offers developers a streamlined, off-the-shelf extensibility solution to aid a common problem: never-ending feature requests from customers,” Steve Manuel, CEO and co-founder of Dylibso, told The New Stack.
“Every engineering team and product manager building a customer-facing application is faced with a backlog of requests, each with conflicting priorities — it’s impossible to keep up. So, Extism helps you let your customers implement extensions and new features to your app, which may be exclusively useful and available to them.”
The release and the previous introduction of Emscripten (although it’s limited to compiling C/C++ to WebAssembly modules), and WebAssembly tools such as Fermyon for Wasm app creation and distribution, raises the question of how the WebAssembly horse race will take shape. This prompts consideration of the broader implications for WebAssembly as a technology, demonstrating its practical application in SDKs and its potential influence on the development landscape.
For the People
The Extism release is a manifestation of Dylibso’s developers’ work to make WebAssembly tools more accessible.
Benjamin Eckel, co-founder of Dylibso, which also makes Observe SDK for monitoring and Modsurfer for WebAssembly analysis, said during his talk at the Linux Foundation conference WasmCon in September that Dylibso’s “next milestone is to achieve some level of parity with traditional systems.
“We don’t really want this to be its own little world. You write all this weird instrumentation in our own little thing — there’s a lot of code and frameworks and applications that are instrumented already,” Eckel said. “We want as much as possible for that stuff just to work in this ecosystem.
“After that, we’re also looking at exploring how Wasm can potentially unlock some broader challenges that people have with observability. Because we actually think it could be a more desirable target than traditional systems.“
During his talk, Eckel described a program available on Extism’s playground that counts the number of vowels in an incoming string.
”So, in order to use this thing, we just compile our Wasm module, we call our upload, and then we give it a name and then we can later just invoke that with some data,” Eckel said. “It’s going to tell us there are three vowels and now we can go raise some money and start a serverless company.”