vim.wasm
This project is an experimental fork of [Vim editor][https://en.wikipedia.org/wiki/vim(texteditor)] by [@rhysd][https://github.com/rhysd] to compile it into WebAssembly using [emscripten][https://emscripten.org/] and [binaryen][https://github.com/webassembly/binaryen]. Vim runs on [Web Worker][https://developer.mozilla.org/en-us/docs/web/api/webworkersapi/usingwebworkers] and interacts with the main thread via [SharedArrayBuffer
][https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/sharedarraybuffer].
This is a great example of WebAssembly, as it shows off how you can take large applications in a language other than JavaScript and bring them to the web by writing a thin UI layer in Javascript! Even for programs like Vim, which are highly dependant of system level API access.
Additional Resources
- (English) VimConf 2018 (Nov. 24th, 2018)
- (Japanese) Emscripten&WebAssembly night!! #8 (Jul. 24th, 2019)
Please see the Source Code for additional resources as well!