// the find
kovidgoyal/rapydscript-ng
A transpiler for a Python like language to JavaScript
RapydScript-NG is a Python-to-JavaScript transpiler that compiles Python-like syntax down to readable, performant JavaScript — no runtime overhead, direct interop with any JS library. It's the maintained fork of the original RapydScript by Kovid Goyal (the calibre author), actively developed and self-hosting. For developers who think in Python but ship to the browser, this is the pragmatic option over Pyodide or Brython.
The generated JavaScript is actually readable and close to idiomatic — you can inspect the output and understand it, which matters when debugging production issues. It's self-hosting, so the compiler itself is written in RapydScript and compiled to JS, which is a meaningful dogfooding signal. The feature set is genuinely complete: decorators, generators, async/await, comprehensions, tuple unpacking, scoped flags for dict semantics — these aren't half-baked. The tree-sitter grammar and LSP support mean you get real editor tooling, not just a syntax file.
The Python compatibility is intentionally shallow — dicts use JS objects by default, strings are UTF-16, `is` maps to `===`, and type checking diverges from CPython in ways that will surprise you at runtime if you're porting existing Python code. The test suite runs in a custom RapydScript test runner rather than a standard JS test framework, which makes it harder to integrate into a normal CI pipeline. At 206 stars this has a tiny community, so if you hit a bug in an edge case of the parser or a stdlib module, you're likely fixing it yourself. There's no TypeScript interop story — no way to consume `.d.ts` files or generate type declarations, so large JS codebases with TypeScript are effectively off limits.