Skip to content

Feature Request: embed .wasm file inside of vim.html so you have a single html file with everything. Like vim.html #48

Open
@ilse-langnar

Description

@ilse-langnar

What is an issue which you want to solve with your feature request?

I want to have a single "vim.html" where everything is contained, even if it makes the file bigger. I already embedded the "VimWasm.js" inside a <script>.

So in this I only have to "import" the "vim.js" file like this:

const screenCanvasElement = document.getElementById('vim-screen');
const vim = new VimWasm({ // VimWasm is available in the global scope via window.VimWasm(loaded via <script>)
    workerScriptPath: './node_modules/vim-wasm/small/vim.js',
    canvas: screenCanvasElement,
    input: document.getElementById('vim-input'),
});

The problem is that when you're inside of vim.js it uses fetch to get the vim.wasm binary so you need a server running to have this working.

Describe the solution you'd like

The solutions would be that you can actually embed .wasm inside of a .html file via base64 encoding, this might not be the most good for performance but for portability it's great!( see https://stackoverflow.com/questions/52582367/a-single-file-webassembly-html-demo and https://gist.github.com/dio/ae79cf546e808a9bc46515bf9400ad5d)

I have tried edit the code myself but it uses both WebAssembly.instantiate and WebAssembly.instantiateStreaming so I'm not exactly sure what to do thus I'm opening this issue.

Additional context (if any)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions