Wascap is an open source project comprised of several implementation libraries and an open standard for security and communications between a WebAssembly guest module and a host runtime, designed specifically for operating within the cloud to improve developer productivity, reduce cost, reduce boilerplate, increase security, and increase performance.
WASI, the WebAssembly System Interface, is a project that, at its core, enables WebAssembly modules to make low-level system calls, as evidenced by the WASI API specification. The plans for accomplishing this are to use compilers to replace clib operating system calls (e.g. file/socket manipulation, syscalls, etc) with WebAssembly imports. Currently, these imports are in the wasi_unstable namespace. With that done, any WASI-compliant host runtime can then host a WASI module. This is how applications like Nginx have been ported to WebAssembly, through the WASI interface.
Wascap is philosophically different in that its goal is to embrace the sandbox of WebAssembly. Wascap (and by extension, implementations of the standard) do not want WebAssembly modules to make unsecured, low-level system calls. We believe that by embracing this standard, developers will be able to eliminate large swaths of boilerplate from their code bases while at the same time leveraging the additional benefits of cloud-native capabilities, security, performance, and more.
Terrarium is actually pretty similar to Wascap on the surface–at least in the idea that both projects strive to solve similar goals. The goal of Terrarium’s engine is to provide for a simplified developer experience to take advantage of things like being able to respond to an HTTP request. At the moment, much of Terrarium’s engine, though based on the Lucet compiler and the Wasmer Runtime is closed source.
Wascap is focused on enterprise-grade security and increasing developer productivity through the removal of capability-oriented boilerplate. Wascap also does not enforce anything about how or where a Wascap runtime may host a guest module. For more information about our implementation of the Wascap runtime, and how it differs from Terrarium’s engine, check out the Waxosuit project.