From d5f25ef4903249c9d47fdbbf1b8fdf42c2bc8af5 Mon Sep 17 00:00:00 2001 From: Bradlee Speice Date: Sat, 15 Sep 2018 01:55:29 -0400 Subject: [PATCH] One more revision Final revision tomorrow, then post it! --- _drafts/isomorphic-apps.md | 151 +++++++++--------- ...png => 2018-09-15-electron-percy-wasm.png} | Bin .../images/2018-09-15-incorrect-MIME-type.png | Bin 0 -> 49655 bytes 3 files changed, 79 insertions(+), 72 deletions(-) rename assets/images/{2018-09-08-electron-percy-wasm.png => 2018-09-15-electron-percy-wasm.png} (100%) create mode 100644 assets/images/2018-09-15-incorrect-MIME-type.png diff --git a/_drafts/isomorphic-apps.md b/_drafts/isomorphic-apps.md index f99e913..ed90dfa 100644 --- a/_drafts/isomorphic-apps.md +++ b/_drafts/isomorphic-apps.md @@ -44,7 +44,7 @@ There may already be solutions to the issues I discuss, but I'm totally unaware so I'm going to try and organize what I know exists. I should also mention that the content and things I'm talking about here are not intended to be prescriptive, -but more "if someone else is interested, where should you start?" *I expect everything in this post to be irrelevant +but more "if someone else is interested, what do we already know doesn't work?" *I expect everything in this post to be obsolete within two months.* Even over the course of writing this, [a blog post](https://mnt.io/2018/08/28/from-rust-to-beyond-the-asm-js-galaxy/) was invalidated because [upstream changes](https://github.com/WebAssembly/binaryen/pull/1642) broke [a Rust tool](https://github.com/rustwasm/wasm-bindgen/pull/787) that ultimately @@ -52,18 +52,18 @@ broke [a Rust tool](https://github.com/rustwasm/wasm-bindgen/pull/787) that ulti **And all that happened within the span of a week.** Things are moving quickly. I'll also note that we're going to skip [asm.js] and [emscripten]. Truth be told, I couldn't get either of these -to produce anything, and so I'm just going to say [here be dragons.](https://en.wikipedia.org/wiki/Here_be_dragons) +to output anything, and so I'm just going to say [here be dragons.](https://en.wikipedia.org/wiki/Here_be_dragons) Everything I'm discussing here is using the `wasm32-unknown-unknown` target. And the code that I *did* get running is available [over here](https://github.com/bspeice/isomorphic_rust). Feel free to use that as a starting point, but I'm mostly including the link as a reference point for the things -that do and don't work. +that were attempted. # An Example Running Application So, I did *technically* get a running application: -![Electron app using WASM](/assets/images/2018-09-08-electron-percy-wasm.png) +![Electron app using WASM](/assets/images/2018-09-15-electron-percy-wasm.png) ...which you can also try out if you want to: @@ -98,18 +98,20 @@ while attempting to link things via Webpack is a detail in the WebAssembly spec: Specifically, if you try and load a WebAssembly blob without the MIME type set, you'll get an error. On the web, this isn't a huge issue because you actually have a server delivering the blob. With Electron, -you're resolving things with a `file://` URL, and thus can't control the MIME type. +you're resolving things with a `file://` URL, and thus can't control the MIME type: + +![TypeError: Incorrect response MIME type. Expected 'application/wasm'.](/assets/images/2018-09-15-incorrect-MIME-type.png) There are a couple of solutions depending on how far into the deep end you care to venture: -- Embedding a static file server in your Electron application -- Using a [custom protocol](https://electronjs.org/docs/api/protocol) and custom protocol handler -- Hosting your WASM blob on a website, thus tying your users to the internet +- Embed a static file server in your Electron application +- Use a [custom protocol](https://electronjs.org/docs/api/protocol) and custom protocol handler +- Host your WASM blob on a website, thus tying your users to the internet But all of these are pretty bad solutions and defeat the purpose of using WASM in the first place. Instead, my workaround was to [open a PR with webpack](https://github.com/webpack/webpack/issues/7918) and use regex to remove calls to `instantiateStreaming` in the -[build script](https://github.com/bspeice/isomorphic_rust/blob/master/percy/build.sh#L21-L25) +[build script](https://github.com/bspeice/isomorphic_rust/blob/master/percy/build.sh#L21-L25): ```sh cargo +nightly build --target=wasm32-unknown-unknown && \ @@ -141,7 +143,7 @@ looks something like this: - `yarn start` triggers the `prestart` script - `prestart` checks for missing tooling (`wasm-bindgen-cli`, etc.) and then: - Uses `cargo` to compile the Rust code into WASM - - Uses `wasm-bindgen` to link the WASM blob into a Javascript file with export symbols + - Uses `wasm-bindgen` to link the WASM blob into a Javascript file with exported symbols - Uses `webpack` to bundle the page start script with the Javascript we just generated - Uses `babel` under the hood to compile the `wasm-bindgen` down from ES6 to something browser-compatible - The `start` script actually runs an Electron Forge handler to do some sanity checks @@ -157,64 +159,9 @@ For as much as I didn't enjoy the Javascript tooling needed to interface with Ru any better at the moment. I get it, a lot of projects are just starting off, and that leads to a fragmented ecosystem. So here's what I can recommend as a starting point: -There are two projects that are attempting to be actual "frameworks": [percy] and [yew]. Between those, -I got [two](https://github.com/bspeice/isomorphic_rust/tree/master/percy) -[examples](https://github.com/bspeice/isomorphic_rust/tree/master/percy_patched_webpack) running -using `percy`, but was unable to get an [example](https://github.com/bspeice/isomorphic_rust/tree/master/yew) -running with `yew` because of issues with "missing modules": - -```sh -ERROR in ./dist/electron_yew_wasm_bg.wasm -Module not found: Error: Can't resolve 'env' in '/home/bspeice/Development/isomorphic_rust/yew/dist' - @ ./dist/electron_yew_wasm_bg.wasm - @ ./dist/electron_yew_wasm.js - @ ./dist/app.js - @ ./dist/app_loader.js -``` - -If you want to work with the browser APIs directly, your choices are [percy-webapis] or [stdweb] (or eventual [web-sys]). -See above for my `percy` examples, but when I [tried to use `stdweb`](https://github.com/bspeice/isomorphic_rust/tree/master/stdweb), -I was unable to get it running: - -```sh -ERROR in ./dist/stdweb_electron_bg.wasm -Module not found: Error: Can't resolve 'env' in '/home/bspeice/Development/isomorphic_rust/stdweb/dist' - @ ./dist/stdweb_electron_bg.wasm - @ ./dist/stdweb_electron.js - @ ./dist/app_loader.js -``` - -At this point I'm pretty convinced that `stdweb` is the issue for `yew` as well, but can't prove it. - -I did also get a [minimal example](https://github.com/bspeice/isomorphic_rust/tree/master/minimal) running -that doesn't depend on any frameworks, just `wasm-bindgen`. It would require manually writing `extern C` -blocks for everything in the browser though, so I don't recommend it. - -Finally, from a frameworks view, there are two up-and-coming packages that should be mentioned: -If you're interested in building something from scratch, [js-sys] and [web-sys] are ones to keep your eyes on. -The idea is to generate all the browser interfaces for you, and leave you to do your thing in peace. I didn't -touch either though, as I'm lazy and wanted to wrap this up. - -So there's a lot in play from the Rust side of things, and it's just going to take some time to figure out -what works and what doesn't. - -# Issue the Third: Known Unknowns - -Alright, so after I managed to get an application started, I stopped there. It was an incredible amount of effort -to chain together everything that was needed, and at this point I'd just rather learn [Typescript] than keep -trying to maintain an incredibly brittle pipeline. Blasphemy, I know... - -The important point I want to make is that there's a lot uknown about how any of this would hold up outside -of proofs of concept (proof of concepts? proofs of concepts?). -Things I didn't attempt: - -- Testing -- Packaging -- Updates -- Literally anything related to why I wanted to use Electron in the first place - -And even outside Electron, the Rust tools are pretty brittle; if someone manages to install a version of `wasm-bindgen-cli` -different from what's in your `Cargo.lock`, they receive a nasty error: +Don't check in your `Cargo.lock` files to version control. If there's a disagreement between the +version of `wasm-bindgen-cli` you have installed and the `wasm-bindgen` you're compiling with in `Cargo.lock`, +you can get a nasty error: ``` it looks like the Rust project used to create this wasm file was linked against @@ -228,17 +175,77 @@ exactly match, so it's required that these two version are kept in sync by either updating the wasm-bindgen dependency or this binary. ``` +Not that I managed to run into this error myself (*coughs nervously*). + +There are two projects attempting to be "frameworks": [percy] and [yew]. Between those, I managed to get +[two](https://github.com/bspeice/isomorphic_rust/tree/master/percy) +[examples](https://github.com/bspeice/isomorphic_rust/tree/master/percy_patched_webpack) running +using `percy`, but was unable to get an [example](https://github.com/bspeice/isomorphic_rust/tree/master/yew) +running with `yew` because of issues with "missing modules" during the `webpack` step: + +```sh +ERROR in ./dist/electron_yew_wasm_bg.wasm +Module not found: Error: Can't resolve 'env' in '/home/bspeice/Development/isomorphic_rust/yew/dist' + @ ./dist/electron_yew_wasm_bg.wasm + @ ./dist/electron_yew_wasm.js + @ ./dist/app.js + @ ./dist/app_loader.js +``` + +If you want to work with the browser APIs directly, your choices are [percy-webapis] or [stdweb] (or eventually [web-sys]). +See above for my `percy` examples, but when I [tried to use `stdweb`](https://github.com/bspeice/isomorphic_rust/tree/master/stdweb), +I was unable to get it running: + +```sh +ERROR in ./dist/stdweb_electron_bg.wasm +Module not found: Error: Can't resolve 'env' in '/home/bspeice/Development/isomorphic_rust/stdweb/dist' + @ ./dist/stdweb_electron_bg.wasm + @ ./dist/stdweb_electron.js + @ ./dist/app_loader.js +``` + +At this point I'm pretty convinced that `stdweb` is causing issues for `yew` as well, but can't prove it. + +I did also get a [minimal example](https://github.com/bspeice/isomorphic_rust/tree/master/minimal) running +that doesn't depend on any frameworks, just `wasm-bindgen`. It would require manually writing "`extern C`" +blocks for everything in the browser though, so I don't recommend it. + +Finally, from a tools and platform view, there are two up-and-coming packages that should be mentioned: +[js-sys] and [web-sys]. Their purpose is to be a low-level building block that simply exposes the browser's APIs +to Rust. If you're interested in building a web app framework from scratch, these should give you the most +flexibility. I didn't touch either for this post, though I expect them to be essential long-term. + +So there's a lot in play from the Rust side of things, and it's just going to take some time to figure out +what works and what doesn't. + +# Issue the Third: Known Unknowns + +Alright, so after I managed to get an application started, I stopped there. It was an incredible amount of effort +to chain together everything that was needed, and at this point I'd rather learn [Typescript] than keep +trying to maintain an incredibly brittle pipeline. Blasphemy, I know... + +The important point I want to make is that there's a lot unknown about how any of this would hold up outside +of proofs of concept. Things I didn't attempt: + +- Testing +- Packaging +- Updates +- Literally anything related to why I wanted to use Electron in the first place + # What it Would Take -Much as I don't like Javascript, the foundation is too shaky for me to recommend mixing Electron and WASM -at the moment. There's a lot of innovation happening here, so who knows? Someone might have an application in production -a couple months from now. But at the moment, I'm personally going to stay away. +Much as I don't like Javascript, the tools are too shaky for me to recommend mixing Electron and WASM +at the moment. There's a lot of innovation happening here, so who knows? Someone might have an application +in production a couple months from now. But at the moment, I'm personally going to stay away. -Let's finish then with a wishlist. Here are the things that I think need to happen before Electron/WASM/Rust +Let's finish with a wishlist then - here are the things that I think need to happen before Electron/WASM/Rust can become a thing: - Webpack still needs some updates. The necessary work is in progress, but hasn't landed yet ([#7983](https://github.com/webpack/webpack/pull/7983)) - Browser API libraries ([web-sys] and [stdweb]) need to make sure they can support running in Electron (see module error above) +- Projects need to stabilize. There's talk of `stdweb` being turned into a Rust API + [on top of web-sys](https://github.com/rustwasm/team/issues/226#issuecomment-418475778), and percy + [moving to web-sys](https://github.com/chinedufn/percy/issues/24) - `wasm-bindgen` is great, but still in the "move fast and break things" phase - A good "boilerplate" app would dramatically simplify the start costs; [electron-react-boilerplate](https://github.com/chentsulin/electron-react-boilerplate) comes to mind diff --git a/assets/images/2018-09-08-electron-percy-wasm.png b/assets/images/2018-09-15-electron-percy-wasm.png similarity index 100% rename from assets/images/2018-09-08-electron-percy-wasm.png rename to assets/images/2018-09-15-electron-percy-wasm.png diff --git a/assets/images/2018-09-15-incorrect-MIME-type.png b/assets/images/2018-09-15-incorrect-MIME-type.png new file mode 100644 index 0000000000000000000000000000000000000000..f1c297eb137b77b36f530ed352a33093af7139b6 GIT binary patch literal 49655 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

1P;+jgdtn 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