Contributor
Zoey_Hong

Improving WASM Support in Knative Functions


Mentors
Matthias Wessendorf, Aleksander Slominski, Luke Kingland
Organization
CNCF
Technologies
kubernetes
Topics
cloud
In a single Knative Functions command, we aim to abstract the entire process of building serverless functions using WebAssembly (WASM)—from compiling the source code into WASM and containerizing it, to deploying it in Knative. This approach allows developers to focus solely on their source code, while Knative Functions handles all underlying transformations, ensuring seamless execution across various platforms. WebAssembly (WASM) significantly enhances performance, security, and flexibility. By compiling code written in languages such as C, C++, Rust, and Go into a bytecode format, WebAssembly ensures consistent execution across different processor architectures (x86, ARM, RISC-V). WASM’s fast execution and platform-independent bytecode format could expand the capabilities of Knative Functions, supporting a broader range of programming languages and processor architectures. Currently, there is no support for WASM in Knative Functions, which is why our project focused on pushing the boundaries of what’s possible by exploring WebAssembly support in Knative. During this project, we identified some limitations in fully integrating WASM into Knative Functions. However, by successfully implementing WASM support in Knative Serving, we were able to explore the potential of WASM within Knative and lay the groundwork for future improvements once these limitations are addressed.