Myjs An accidental pure-Python JavaScript interpreter
Details
- External ID
- 49579498
- Source
- HN
- Company
- —
- Product
- Myjs An accidental pure-Python JavaScript interpreter
- Website domain
- pypi.org
- Launched
- Sept. 5, 2026
- Cohort
- —
- Upvotes
- 7
- Upvotes percentile
- 0.4393939393939394
- Tags
- —
- Fetched at
- Sept. 10, 2026, 5:31 a.m.
- Updated at
- Sept. 10, 2026, 5:31 a.m.
Description
Hi HN! byteface here. myjs was a recent accident I'd like to share.Several years ago I began writing DOM API's in Python as a curiosity: https://github.com/byteface/domonic/Every now and then I do another pass rolling in more features from the MDN pages. I have lots of unit tests but found that porting real code and libraries was a useful test of the DOM compatibility. But I didn't want to pollute the core any further as had already ported d3 and jquery.So I created a new repo called domonic-libs: https://github.com/byteface/domonic-libs/Anyways a couple of days ago while porting some js libraries faithfully to run against dom.py and javascript.py I came across Acorn (a Javascript parser) and coverted it into pure python.Once Acorn.py was producing an AST, I mapped that against domonic's Javascript and DOM nodes and to my surprise... actual JS code started executing inside the Python process!Give it a try:pipx install myjsWould love to hear your thoughts, edge cases to test, or feedback!
Enrichment
- Theme
- niche developer utilities and toolchains
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- javascript interpreter in python
- Manually corrected
- False
Could you build this?
No Building a custom JavaScript interpreter and complete DOM environment from scratch in pure Python requires compiler engineering, AST parsing, JS execution semantics, and event loop specifications.
What it would actually take: Requires an AST parser (or bytecode compiler) implementing ECMAScript specs, an execution runtime/evaluator, an asynchronous event loop mimicking the browser/Node microtask queue, and full implementation of hundreds of Web/DOM API specs. The hard parts are implementing JS's prototype inheritance, scoping rules, async/await semantics, and spec-compliant DOM tree mutation in pure Python without using V8 or WebKit. This demands specialized compiler and language runtime expertise.
Discussion
No comments on this launch.
Competitors
Other products that read as similar to this one — 150 launches clear the similarity bar, closest 8 shown.
Attention rank: #84 of 151 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 308 days after the earliest competitor.
- Belgie · hn · 2026-07-06 · 5 upvotes · similarity 0.49
- µJS, a 5KB alternative to Htmx and Turbo with zero dependencies · hn · 2026-03-07 · 161 upvotes · similarity 0.45
- OtterLang · hn · 2025-11-08 · 15 upvotes · similarity 0.45
- Zig parser in ~70 lines of JavaScript · hn · 2026-01-17 · 10 upvotes · similarity 0.44
- Full Python GUI apps in the browser · hn · 2026-05-07 · 29 upvotes · similarity 0.44
- GrainJS · hn · 2025-12-26 · 5 upvotes · similarity 0.44
- json-toolkit · github · 2026-09-29 · 43 upvotes · similarity 0.44
- Lambda 0.2 · hn · 2026-03-24 · 9 upvotes · similarity 0.43
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.