Package Exports
- @wasmer/wasmfs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@wasmer/wasmfs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@wasmer/wasmfs
Isomorphic library to provide a sandboxed node fs
implementation for Node and Browsers. 📂
Table of Contents
Features
This project heavily depends on memfs to provide the sandboxed fs
implementation. 🙏😄
This package provides the following features:
- In-memory file-system with Node's fs API using memfs. 🗄️
- Scaffolds common files used by the Wasmer Runtime (e.g I/O Device files like
/dev/stdout
), to provide a similar experience to the Wasmer Runtime. 🔌 - Provides convienence functions for grabbing Input / Output. ↔️
- Allows overriding read/write of individual files to allow for custom implementations. 🛠️
Installation
For installing @wasmer/wasmfs
, just run this command in your shell:
npm install --save @wasmer/wasmfs
Quick Start
import { WasmFs } from "@wasmer/wasmfs";
const wasmFs = new WasmFs();
wasmFs.fs.writeFileSync("/dev/stdout", "Quick Start!");
wasmFs.getStdOut().then(response => {
console.log(response); // Would log: 'Quick Start!'
});
For a larger end-to-end example, please see the @wasmer/wasm-terminal
package.
Reference API
wasmFs.fs
memfs' node fs implementation object. See the node fs documentation for API usage.
NOTE: The functions on this fs
implementation can easily be overriden to provide custom functionality when your wasm module (running with @wasmer/wasi
) tries to do file system operations. For example:
const wasmFs = new WasmFs();
const originalWriteFileSync = wasmFs.fs.writeFileSync;
wasmFs.fs.writeFileSync = (path, text) => {
console.log("File written:", path);
originalWriteFileSync(path, text);
};
wasmFs.fs.writeFileSync("/dev/stdout", "Quick Start!");
// Would log: "File written: /dev/stdout"
wasmFs.getStdOut()
Function that returns a promise that resolves a string. With the file contents of /dev/stdout
.
Contributing
This project follows the all-contributors specification.
Contributions of any kind are welcome! 👍