An independent, MIT-licensed backend family taking Nimony to the JS/web ecosystem and beyond — built on Nimony through the stock NIF APIs, no compiler fork. Two tracks.
Faithful — JavaScript + WebAssembly. One C-ABI byte-layout model: a single ArrayBuffer, pointers as offsets, objects as byte layouts, shared verbatim by both targets. WASM is a second instruction selector over that model, so JS and WASM move together. Low-level, portable, WASM-native.
Idiomatic — TypeScript + Python. Emitters producing natural output — real objects, native closures, try/finally, list/dict/set — that interoperates with existing TS/Python instead of shipping a byte-buffer runtime.
Two jobs, not competitors: linear is faithful/low-level and gives you WASM; idiomatic is readable/interoperable and meets the TS/Python ecosystems where they are. Collapsing both into one artifact is where Nim-to-JS usually stalls — these stay separate on purpose. Internally, JS+WASM share the layout engine and TS+Python share one lowering, so language-specific code stays thin and new targets are additive.
Repos (all MIT):
Active development; feedback, issues, and testers welcome.