A digital museum of video game levels
I've experienced a 2x speedup when porting tight loops from JS to WASM. In my case, my tasks are decompression and texture decoding. I initially ported to C, and then ported to AssemblyScript, being careful to manually manage the memory along the way.
The old code was also very "tight-loop" code that just math, and no GC allocation, so it's not applicable to many people here yet, and it's possible that JS interpreters have improved since when I ported (GC behavior has gotten quite noticeably better in V8 in the last two years), but I'll take the speedups I can get.
Old TypeScript: https://github.com/magcius/noclip.website/blob/master/src/Wi...
New AssemblyScript: https://github.com/magcius/noclip.website/blob/master/src/as...
Wrapper for WebAssembly execution: https://github.com/magcius/noclip.website/blob/master/src/Co...
The content behind MDN Web Docs
I absolutely love the new MDN where every article is just a file on Git. For example, the source for this article is here: https://github.com/mdn/content/blob/main/files/en-us/webasse...
You can find the link to the source of any article at the bottom of the page.
PopRuby: Clothing and Accessories for Ruby Developers. Fashion meets Ruby! Shop our fun Ruby-inspired apparel and accessories designed to celebrate the joy and diversity of the Ruby community.
WebAssembly Design Documents
I'm switching a browser game side project from Typescript to WebAssembly because determinism enables a simpler style of multiplayer. Instead of relying on a server to manage state, I can just send inputs p2p like a modern fighting game (with rollback ). Then the game acts just like singleplayer! For a hobbyist like me, WebAssembly makes the minefield of multiplayer so much easier to navigate.
Constraint solver for word games.
A few wasm projects I've worked on:
- A multi-player word game: https://redwords.paulbutler.org/
- What Aper does just wouldn't be possible without Rust features like Serde and macros.
:globe_with_meridians: Jekyll is a blog-aware static site generator in Ruby
Source code behind the Windows Subsystem for Linux documentation. (by MicrosoftDocs)
The AMP Project Website.
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
A fast, powerful type checker designed for Ruby
Do you have an example of getting bazel to work with emscripten?
I’ll share mine if you share yours:
When we set this up to compile Sorbet (C++ codebase) for https://sorbet.run, it involved what I considered an inordinate amount of boilerplate and arcana.
To be fair since we set it up it’s hardly ever needed to be touched, and I could probably cargo cult this into future projects where I wanted to use it, but I wouldn’t exactly say that bazel magically makes the pain of emscripten go away.
Curious to hear otherwise.
LLVM toolchain for bazel
The trick is that to provide Bazel with a custom toolchain involves way more than just setting an environment variable, because Bazel wants to control installing and making available the compiler reliably (e.g., what if `emcc` is not present on the system where Bazel was invoked? Bazel solves that problem by fetching it and building it for that system)
There are projects that provide drop-in support for custom toolchains (e.g., we use this project in Sorbet to fetch and build a custom LLVM/Clang toolchain for every host we build on (rather than relying on the system toolchain). But I'm not aware of a project that has done that for Emscripten. Maybe it would be as easy as plucking out what we've done in our project into a project that others could depend on, but to quote a colleague:
> Setting up a cc toolchain in Bazel is a unique sort of pain.
Web Development Tools and Resources
5 projects | dev.to | 25 Feb 2024
Bridgetown: Progressive site generator and fullstack framework, powered by Ruby
1 project | news.ycombinator.com | 27 Jan 2024
Where are the layouts!? And where is the site object loaded from? (Chirpy Theme)
2 projects | /r/Jekyll | 9 Dec 2023
How do i replicate GTFOBins layout ?
6 projects | /r/web_design | 5 Dec 2023
Release v4.3.2 · jekyll/jekyll
1 project | /r/AppleCard | 18 Nov 2023