amp.dev
crossword-composer
Our great sponsors
amp.dev | crossword-composer | |
---|---|---|
1 | 1 | |
574 | 43 | |
-0.2% | - | |
9.2 | 0.0 | |
7 days ago | about 1 year ago | |
HTML | Rust | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
amp.dev
crossword-composer
-
WebAssembly
A few wasm projects I've worked on:
- An in-browser crossword puzzle generator: https://crossword.paulbutler.org/ (source: https://github.com/paulgb/crossword-composer)
- A multi-player word game: https://redwords.paulbutler.org/
- A library for synchronizing state between clients, used for that word game: https://aper.dev/ (source: https://github.com/aper-dev/aper very WIP right now)
In my experience, the single biggest perk of using WebAssembly is that I can use a language I'm very productive in (Rust) compared to JavaScript. Everything else is secondary. That said, I think these projects have specific advantages by virtue of being WebAssembly:
- The backtracking search used for the crossword puzzle generator is carefully implemented to not allocate extra memory. This would be tough to do in JavaScript, and I believe it's partly responsible for its performance.
- The word game uses a compression algorithm that benefits very noticeably from wasm-opt, to the point that I can't run it without it. Given that wasm-opt takes a non-trivial amount of time at compile time, I suspect the JavaScript JIT would be slow at doing something similar at runtime. This is just conjecture, I haven't checked.
- What Aper does just wouldn't be possible without Rust features like Serde and macros.
What are some alternatives?
content - The content behind MDN Web Docs
noclip.website - A digital museum of video game levels
sorbet - A fast, powerful type checker designed for Ruby
Jekyll - :globe_with_meridians: Jekyll is a blog-aware static site generator in Ruby
WSL - Source code behind the Windows Subsystem for Linux documentation.
design - WebAssembly Design Documents