cncf / sandbox

Applications for Sandbox go here! ⏳📦🧪
Apache License 2.0
132 stars 22 forks source link

[Sandbox] container2wasm #123

Open ktock opened 2 months ago

ktock commented 2 months ago

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

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.

ktock commented 5 days 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).