Alternatives
Products that do what Elfconv – Linux Apps to High-Performance WASM Binary Translator does
This post introduces elfconv, a binary translator that converts Linux applications into WebAssembly. repo: https://github.com/yomaytk/elfconv Recently, performance has improved dramatically. In our LINPACK benchmark, the Wasm generated from ELF/AArch64 by elfconv now runs at roughly 60–80% of the performance of the Wasm directly compiled from source code. This shows that elfconv can produce WebAssembly with practical, real‑world performance! Furthermore, compared to QEMU running in the browser, it achieves approximately 68× the performance. Benchmark test:…
- 1AM
2024 · github.com
- 2AM
Apr 2026 · github.com
- 3JA
I've open sourced a JavaScript to WASM compiler. It's an experimental tool, but given the semantics I already implemented, I'm fairly certain I am able to eventually cover 100% of JavaScript spec. Any ideas, questions or critique welcomed! If you are interested in WASM, especially with new proposals like WASM GC or exception handling, it might be a good source of seeing these features in action - the project has a few thousand lines of hand written WAT so far.
2024 · github.com
- 4FI
This is the entire Firefox browser rendering to a element. Gecko, all UI components, and the Spidermonkey JS engine are all compiled and running in WebAssembly. Here are a few things you might find interesting: - This is fully end to end encrypted! We use the WISP protocol for TCP-over-websockets. - There is a novel WASM->JS JIT for experimental site speedup - This port cost over 25k in opus/fable tokens for debugging and JIT research This was just a fun experiment to push the boundaries of WebAssembly. For a more usable "browser in browser" experience, we also built…
Jul 2026 · developer.puter.com
- 5XS
Repo: https://github.com/valdanylchuk/xcc700 Hi Everyone! I just wrote my first compiler! - single pass, recursive descent, direct emission - generates REL ELF binaries, runnable using ESP-IDF elf_loader - very basic features only, just enough for self-hosting - treats the Xtensa CPU as a stack machine for simplicity, no register allocation / window usage - compilable on Mac, probably also Linux, can cross-compile for esp32 there - wrote for fun / cyberdeck project Sample output from esp32: xcc700.elf xcc700.c -o /d/cc.elf [ xcc700 ] BUILD COMPLETED >…
Dec 2025 · github.com
- 6TW
Apr 2026 · github.com
- 7IW
2023 · github.com
- 8WA
As a personal project I wrote a really tiny Wat 2 Wasm compiler in Go. Mainly for demonstrative and educational purposes. It was tough: I didn't know anything about WebAssembly internals and I'm a newbie with Go... so I tried to document it as much as I could for anyone that would like to approach the quest in the future! It misses a lot of features (that will be gradually implemented). Any feedback is welcomed!! Demo: https://luna-demo.vercel.app
2022 · github.com
- 9AM
Apr 2026 · github.com
- 10AT
2024 · github.com
- 11DI
2022 · copy.sh
- 12RP
2021 · repl.leaningtech.com
- 13SM
I wanted to see how fast an isolated code sandbox could start if I never had to boot a fresh VM. So instead of launching a new microVM per execution, I boot Firecracker once with Python and numpy already loaded, then snapshot the full VM state. Every execution after that creates a new KVM VM backed by a `MAP_PRIVATE` mapping of the snapshot memory, so Linux gives me copy-on-write pages automatically. That means each sandbox starts from an already-running Python process inside a real VM, runs the code, and exits. These are real KVM VMs, not containers: separate guest kernel, separate guest…
Mar 2026 · github.com
- 14EIELF Injector▲39
The ELF Injector allows you to "inject" arbitrary-sized relocatable code chunks into ELF executables. The code chunks will run before the original entry point of the executable runs. Included in the project are sample chunks as well as a step-by-step tutorial on how it works. It's a mix of C and assembly and currently runs on 32-bit ARM though it's easy to port to other architectures.
2025 · github.com
- 15TA
Show HN: TinyWasm - A tiny WebAssembly Runtime written in Rust Hi HN! I'm excited to share TinyWasm (https://github.com/explodingcamera/tinywasm), a WebAssembly Interpreter I developed for my final university project. The main goal of this project was to deepen my understanding of WebAssembly and interpreter design. TinyWasm successfully passes all the official WebAssembly 1.0 tests and also includes features from future proposals such as like bulk memory operations. Initially more of a research project, TinyWasm focuses on simplicity and portability. It has minimal…
2024 · github.com
- 16CL
A month or so ago, I ported a Common Lisp implementation (npt) to WebAssembly to make a silly blog post, because I was bored and have a lot of time on my hands to waste with things like this (I don't have a job, and because I have next to no experience, these meaningless, silly projects tend to fill what time I do have). This is significant as it's the first time Common Lisp in particular has ever been hosted on it; wasm has a few poor decisions in its design that make it less-than-conducive to being a target for Common Lisp, and a lot of the more interesting implementations require an…
2022 · soi-disant.srht.site
- 17SU
Hi everyone, I built a runtime to isolate untrusted code using wasm sandboxes. Basically, it protects your host system from problems that untrusted code can cause. We’ve had a great discussion about sandboxing in Python lately that elaborates a bit more on the problem [1]. In TypeScript, wasm integration is even more natural thanks to the close proximity between both ecosystems. The core is built in Rust. On top of that, I use WASI 0.2 via wasmtime and the component model, along with custom SDKs that keep things as idiomatic as possible. For example, in Python we have a simple decorator:…
Feb 2026 · github.com
- 18TW
Using wasm-bindgen, and the tween-rs crate
2024 · rustween.mtassoumt.uk
- 19CE
Hello! This is the most useless thing I did in quite some time, but it was fun. Compile erlang (actually BEAM) to wasm, statically link with a small http wrapper and run as a request handler under wasmtime. This is not very practical as of now and you better just compile atomvm and statically link it with erlang payload if you really need to run erlang on the edge node (you don't). When (if) typed continuations become a thing, this should also allow for erlang actor model.
2024 · github.com
- 20SW
[I'm the author] Spall is a web-accessible profiler that I made to help my web-dev friends load gigabyte+ JSON traces without lunch-break-long load times. Recently, Spall got experimental support for auto-tracing with binary traces (along with an in-progress native-port, to give it more memory headroom), which was used to help track down and fix some hard-to-spot lock contention issues in the Odin-language compiler. I demoed it at the Handmade Seattle conference in October, https://guide.handmade-seattle.com/c/2022/spall/, with a head-to-head against Perfetto,…
2023 · gravitymoth.com
- 21

- 22AF
Serialization framework with some interesting numbers: 10-20x faster on nested objects than json/protobuf. Technical approach: compile-time codegen (no reflection), compact binary protocol with meta-packing, little-endian layout optimized for modern CPUs. Unique features that other fast serializers don't have: - Cross-language without IDL files (Rust ↔ Python/Java/Go) - Trait object serialization (Box) - Automatic circular reference handling - Schema evolution without coordination Happy to discuss design trade-offs. Benchmarks:…
Oct 2025 · fory.apache.org
- 23

A fast, rootless sandbox and virtual resource runtime for any workload, including untrusted and AI-generated code. Daemonless: a real, kernel-enforced container in ~3.5 ms from an OCI image, out of one static binary - getkern/kern
13d ago · github.com
- 24AC
I think that asdf (https://asdf-vm.com) was a great idea for a project. It helps consolidate installing and running different programming languages into a similar UX. It also is built with a plugin interface that makes it easy to build support for new languages. However it is so slow. I was just testing `node -v` and it was taking ~900ms. That kind of overhead is completely unusable. My shell prompt uses runtimes inside of it for various things so this effectively makes every command take multiple seconds to complete. So I rebuilt it in Rust but using the same plugin ecosystem so…
2023
Ranked by how close each launch is in meaning, then by votes. Refine with a description →