Skip to content

Tracking issues of OpenDAL wasm32-unknown-unknown target support #3803

@Xuanwo

Description

@Xuanwo

WebAssembly (WASM) is a modern binary instruction format for a stack-based virtual machine. It is designed as a portable compilation target for high-level languages like C/C++ and Rust, enabling deployment on the web for client and server applications. WASM aims to enable near-native performance for web applications, providing a more efficient and secure alternative to traditional JavaScript. Its key features include fast loading times, efficient execution, and the ability to run alongside JavaScript, allowing developers to build complex client-side web applications that perform better than those written solely in JavaScript.

By adding WASM support for opendal, we will allow users to use opendal in targets like wasm32-unknown-unknown. In a short word, users can use opendal in web browser!

We have addressed most blockers by #3796 and adding a basic test for s3 #3802. It's time for us to move forward.

image

This tracking issue is used to track our current progress of wasm support. Welcome to join in us!

Tasks

Add OPFS support

After opendal is ready for WASM, we can start to work for opfs now!

Add support for more services

Please run the following command to check if opendal can build under wasm32 arch:

cargo build --target wasm32-unknown-unknown --no-default-features --features=services-s3

Visit #3796 for possible fix or ask directly in this issue.

It's possible that some services can't support wasm at all, like fs. Please also provide your feedback here. We will collect them into a seperate doc.

Testing

  • Integrate behavior test for wasm target

Benchmark

  • Add benchmarks for opendal wasm

Existing issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions