Disclaimer: This is a highly experimental project fueled by hubris, caffeine, and the misguided belief that “how hard could it be?” Spoiler: It’s very hard. RustyJS will probably never be completed. Proceed with curiosity, laughter, and very low expectations.
RustyJS is a bold (read: absurd) attempt to build a JavaScript engine entirely from scratch using Rust. Why? Because learning Rust while implementing one of the most complex things in computer science is obviously a brilliant idea. What could possibly go wrong? (Everything.)
- This is not production-ready. It’s not even close to being “ready” for anything except being laughed at.
- Expect bugs, dragons 🐉, and existential crises.
- If you actually try to use this in a real project, you’re braver than we are. Good luck, warrior. 🛡️
- Learn Rust: Because memory safety, ownership, and “the borrow checker” sounded fun until we met them.
- Understand JavaScript internals: Or at least pretend to.
- Reinvent the wheel: But square-shaped and slightly on fire.
- Make something that sort of works: Maybe… eventually… if the stars align.
🛠️ Installation (If You Dare)
- Clone the repo:
git clone git@github.com:kimuraz/rujs.git
cd rujs
- Build the project:
cargo build
- Run the thing: (Lower your expectations.)
cargo run
You wouldn’t. But if you want a cautionary tale about overestimating your programming abilities, RustyJS is here for you.
If you want to help, we won’t stop you. Just know what you’re signing up for:
- Sleepless nights.
- Wrestling with Rust’s borrow checker.
- Wondering why you thought JavaScript needed another engine.
Steps to Contribute:
- Fork this repo.
- Write some code that does something vaguely JavaScript-y
- Submit a PR.
- Laugh maniacally when it’s merged.
This project is licensed under the “I Have No Idea What I’m Doing” License. Use at your own risk. (MIT, com'on)
To Rust, for teaching us humility. To JavaScript, for existing just to torment us. ChatGPT to help writing funny READMEs. And to you, for reading this far, you’re a hero.