Hello, world!

Introducing Dylibso: helping teams take WebAssembly to production

Hello, world!

Introducing Dylibso: helping teams take WebAssembly to production

by: Steve Manuel

announcement launch modsurfer funding

I’m pleased to formally introduce our new company today, as we officially launch and get to share what we’ve been quietly building over the past few months. To get it out of the way, the name “Dylibso” is a bit of a geeky programmer name which pays respect to some technology we believe will be displaced by WebAssembly: the good old shared library. On a Mac, these files have the extension .dylib, and on Linux, .so. Sorry to disappoint if you thought there was a better story there ;)

At Dylibso, we are big fans of WebAssembly, and are dedicating our entire efforts to making the technology as usable and production-ready as possible. To be honest, WebAssembly itself and the ecosystem of runtimes, compilers, languages and projects are already there! But the “last mile” of a software system getting to production is tricky. We have years of experience running large, reliable systems and have found that many of the necessary tools, services, and peripheral system software is either outright missing support for WebAssembly, or is just too difficult to make work.

So we’re changing that. We see a future where WebAssembly is every developer’s favorite binary format, because the experience working with it is just that good.

Meet Modsurfer

To start, we’re releasing a beta version of Modsurfer today. It’s a “system of record” for all the WebAssembly modules that you want to track - either you’re running them in your own infrastructure or you’re debugging or investigating code you’ve compiled and want to inspect.

Modsurfer Desktop

You can download Modsurfer Desktop for free, and use it locally on your own system. When you run it, Modsurfer starts an HTTP API server, which you can integrate against through your own programs, or use our CLI tool. Load your modules into the system and see critical information about your code, the functions imported and exported, as well as some insights into the code complexity & runtime risk, binary size, as well as search & sort across many of these dimensions. It’s like a pair of x-ray goggles for your WebAssembly binaries.

Modsurfer CLI

The CLI is a great companion to Modsurfer Desktop to load modules, search for modules based on facets like included functions, namespaces, and source language, as well as run system-wide audits for modules that pass or fail certain criteria. This criteria is encoded into what we call a “checkfile”. A checkfile contains basic expectations of a module, such as that it must include a certain function import with a specific signature (ensuring compatibility with a host ABI), or that the exported code does not include a particular function, following the principle of least privilege. Modsurfer also calculates the cyclomatic complexity of the WebAssembly instructions baked into a module to provide teams with a measure of risk assumed when executing code from third-parties.

All of these criteria encoded into these checkfiles can then be used to validate that any module conforms to the expectations required by a user or a platform. We have a number of examples for various ecosystem companies & projects here: https://github.com/dylibso/modsurfer/tree/main/vendors so take a look and please reach out if you’re looking to include a checkfile for your ABI or platform. We’d be happy to help. In fact, you can start by taking a module you know to be correct, and run it against:

modsurfer generate -p your/module.wasm -o mod.yaml

This will generate a full checkfile, that likely contains too much criteria to restrict, but it’s a good starting point.

Common tools across ecosystem

WebAssembly is an instruction set that runs across a variety of environments - beyond the scope of the cloud, or the browser, or the desktop alone. We have the opportunity to support a substantial number of users with tools that can be re-used across these computing environment boundaries. Wouldn’t it be great to use the same performance or debugging tools on your code running in the browser and server and blockchain? This environment-agnostic feature of WebAssembly guides our product development and we look forward to bringing a new level of consistency across the world of software development.

WebAssembly computation envitonments

What’s next

We have a few other WebAssembly products in the works, and we’re excited to share more about them in the coming months. You may already know about our open source Universal Plug-in System, Extism. We’re proud of how far this project has come, and the amazing community rallied around it. The contributions continue to blow us away, and we’re looking forward to all the things we want to build with Extism - and to see what else people surprise us with!

Funding

All of that said, we can’t accomplish our goals purely on our own, and are glad to have partnered with some of the most incredible technology investors on the planet. In addition to our products and company launch announcements, we’re also sharing that we’ve closed $6.6 million in Seed funding led by the amazing team at Felicis, with continued support from our pre-seed investors boldstart ventures, and from Pebblebed & Crew Capital. A sincere thank you to Viviana, Tobi, Shomik, Ed, Luke, Keith, Pam, and Dylan from these firms - we’re happy to have you on board!

That’s all for now, and thanks for reading along. Today is a big day for us, and we hope what we’re working on resonates with you. If you’re building with WebAssembly, we want to talk to you! So please reach out on @twitter, email us: hello@dylibso.com, join our newsletter, or hop into the Discord and talk Extism & plug-ins with us.

Here to help! 👋

Whether you're curious about WebAssembly or already putting it into production, we've got plenty more to share.

We are here to help, so click & let us know:

Get in touch