Open ktock opened 2 months ago
Hi, I will attend the coming WasmCon and KubeCon NA 2024 and will have a talk related to this project at WasmCon (12th Nov. 1:45pm-2:20pm MST, Distributing and Running Containers for Wasm-Enabled Environments).
If you are interested in this project, feel free to reach out to me! I'll be also online at CNCF slack (Kohei Tokunaga
is me on slack).
Application contact emails
ktokunaga.mail@gmail.com
Project Summary
A tool to run containers on Wasm-enabled environments.
Project Description
WebAssembly (Wasm) is expanding its adoption among tools and programming languages. But porting existing applications to Wasm is still hard. Wasm doesn't provide Linux compatibility so developers need to re-compile or re-implement existing Linux applications to run them on Wasm. This costs extra time for development.
container2wasm is a tool to solve this problem by enabling to run unmodified Linux-based containers on Wasm, leveraging CPU emulators. Applications can leverage the portability and security benefits of Wasm, without extra costs of re-compilation and re-implementation.
It has features including the following.
This project is beneficial for use cases that require an isolated execution environment and wide portability covering browsers. For example, the possible use cases will include running on-browser Linux-compatible dev environment (e.g. vscode-container-wasm), on-browser demo of applications (e.g. container2wasm demo) and isolated execution of untrusted third party software on machine.
The goal of this project is to make containers easily leverage Wasm's portability and security benefits and to make Wasm VM a more easy-to-use execution environment.
Org repo URL (provide if all repos under the org are in scope of the application)
N/A
Project repo URL in scope of application
https://github.com/ktock/container2wasm
Additional repos in scope of the application
No response
Website URL
https://github.com/ktock/container2wasm
Roadmap
https://github.com/ktock/container2wasm/blob/main/ROADMAP.md
Roadmap context
No response
Contributing Guide
https://github.com/ktock/container2wasm/blob/main/CONTRIBUTING.md
Code of Conduct (CoC)
https://github.com/ktock/container2wasm/blob/main/CODE_OF_CONDUCT.md
Adopters
No response
Contributing or Sponsoring Org
No response
Maintainers file
https://github.com/ktock/container2wasm/blob/main/MAINTAINERS
IP Policy
Trademark and accounts
Why CNCF?
CNCF hosts Wasm-related projects and is a large community for discussing Wasm technology. By joining CNCF, this project will be a neutral community for the discussion of the migration of applications to Wasm and encourage the integration and collaboration of containers and Wasm. This project also fills the missing piece of the ecosystem in this area.
Joining CNCF will also help this project to increase its visibility, and we expect to acquire more contributors and maintainers to this project and expand its adoption. This will help us to maintain this project in the long term.
Benefit to the Landscape
The solution for the incompatibility between the container and Wasm was a missing piece in the CNCF projects. One of the benefits of this project is that this project will fill this gap and encourage integration of containers and Wasm.
As mentioned in the project description, this project is beneficial for use cases that require isolated execution environment and wide portability covering browsers. For example, the possible use cases will include running on-browser Linux-compatible dev environments, on-browser playgrounds and isolated execution of untrusted third-party software.
Cloud Native 'Fit'
container2wasm is already listed as one of the "Wasm Orchestration & Management" tools in the landscape. https://landscape.cncf.io/?item=wasm--orchestration-management--container2wasm
container2wasm works as a runtime for containers to run in Wasm VM. So this can be classified as TAG Runtime.
Cloud Native 'Integration'
This depends on containerd of CNCF and runc of OCI for running containers. container2wasm also can be used in combination with the various tools in the CNCF community, including the following:
Cloud Native Overlap
No
Similar projects
There are container runtimes can run Wasm blobs, but they can't run containers on Wasm VM.
There are emulators that can run Linux on Wasm, but they don't support container to Wasm conversion.
Landscape
Yes. https://landscape.cncf.io/?item=wasm--orchestration-management--container2wasm
Business Product or Service to Project separation
N/A
Project presentations
container2wasm hasn't been presented at any TAG meeting but it has been presented at several events including the following:
Project champions
No response
Additional information
In the community, several adopters of container2wasm can be found.