All Projects → GoogleChromeLabs → Wasi Fs Access

GoogleChromeLabs / Wasi Fs Access

Licence: apache-2.0
This is a demo shell powered by WebAssembly, WASI, Asyncify and File System Access API.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Wasi Fs Access

Terrarium Templates
Template and example projects for Fastly Labs Terrarium https://wasm.fastlylabs.com
Stars: ✭ 21 (-78.57%)
Mutual labels:  demo, webassembly
Dmon
Single header C99 portable library for monitoring directory changes.
Stars: ✭ 95 (-3.06%)
Mutual labels:  filesystem
Webnbt
An HTML5 NBT-editor based on emscripten
Stars: ✭ 91 (-7.14%)
Mutual labels:  webassembly
D3 Wasm Force
A re-implementation of d3-force with WebAssembly.
Stars: ✭ 93 (-5.1%)
Mutual labels:  webassembly
Wasm Forth
A Forth implementation compiling to WebAssembly.
Stars: ✭ 92 (-6.12%)
Mutual labels:  webassembly
Cloudcmd
✨☁️📁✨ Cloud Commander file manager for the web with console and editor.
Stars: ✭ 1,332 (+1259.18%)
Mutual labels:  filesystem
Gatsby Demo Store
Elastic Path + Gatsby powered online store
Stars: ✭ 91 (-7.14%)
Mutual labels:  demo
React Fiber Vs Stack Demo
⚡️ React Fiber vs Stack Demo
Stars: ✭ 97 (-1.02%)
Mutual labels:  demo
Evm2wasm
[ORPHANED] Transcompiles EVM code to eWASM
Stars: ✭ 96 (-2.04%)
Mutual labels:  webassembly
Ngx Dynamic Form Builder
FormBuilder + class-transformer + class-validator = dynamic form group builder for Angular10+
Stars: ✭ 93 (-5.1%)
Mutual labels:  demo
Nextjs Starter
A starter project for Next.js with authentication
Stars: ✭ 1,313 (+1239.8%)
Mutual labels:  demo
Emscripten Docker
Docker image with Emscripten to compile ASM.js and WebAssembly
Stars: ✭ 92 (-6.12%)
Mutual labels:  webassembly
Fs extra
Expanding opportunities standard library std::fs and std::io
Stars: ✭ 95 (-3.06%)
Mutual labels:  filesystem
Pathos
File management and path analysis for Swift
Stars: ✭ 92 (-6.12%)
Mutual labels:  filesystem
Live Doc
💫 Convert markdown to live React demos
Stars: ✭ 97 (-1.02%)
Mutual labels:  demo
Grad Cam
🌈 📷 Gradient-weighted Class Activation Mapping (Grad-CAM) Demo
Stars: ✭ 91 (-7.14%)
Mutual labels:  demo
Dcmjs
dcmjs is a javascript cross-compile of dcmtk (dcmtk.org).
Stars: ✭ 92 (-6.12%)
Mutual labels:  webassembly
Android Databinding
this is the databinding framework of android . help to binding data to the view.
Stars: ✭ 93 (-5.1%)
Mutual labels:  demo
Webvr Helloworld
a webVR 'hello world' project base in three.js
Stars: ✭ 96 (-2.04%)
Mutual labels:  demo
React Demo Gather
react demo合集,有自己写的,也有在学习过程中觉得很好的demo收集的,持续更新中
Stars: ✭ 97 (-1.02%)
Mutual labels:  demo

wasi-fs-access

What

This is a demo shell powered by WebAssembly, WASI, Asyncify and File System Access API.

You can access the live version here: https://wasi.rreverser.com/

Or watch a video showing some of the features: Youtube recording

How

It provides WASI bindings implementation that proxies any filesystem requests to a real, host filesystem. This allows apps built in languages like C, C++, Rust and others to be compiled to WebAssembly and work as usual within a browser sandbox, accessing and manipulating files in a "real world".

Since WASI APIs are synchronous by nature, but Web APIs are traditionally asynchronous to avoid blocking the main thread, Asyncify is used to bridge the two types of APIs together. Asyncify is a feature created as part of Emscripten and later extended to work with arbitrary WebAssembly files with the help of a custom JavaScript wrapper.

A Rust port of coreutils with some patches was chosen for the demo purposes, but it should be possible to extract and reuse same bindings for any applications compiled for the WebAssembly + WASI target.

Note that some commands in the demo might not work due to either limitations of the WASI itself, limitations of the File System Access API (such as an absent support for symlinks), or simply due to hardcoded assumptions about the target system in the used coreutils codebase itself. Most of those limitations can be easily worked around or will be naturally fixed as both APIs develop over time.

Want to learn more?

Check out my presentation from the WebAssembly Live! here: https://www.slideshare.net/RReverser/asyncifying-webassembly-for-the-modern-web

And / or the talk: https://youtu.be/pzIJYAbcbf8?t=82

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].