SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Interpreter Open-Source Projects
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Glad to see statecharts still getting attention!
I created XState, a JS/TS library for authoring, executing, and visualizing state machines/statecharts: https://github.com/statelyai/xstate
I've been working on it for 10+ years. The main thing I've learned is that statecharts are most valuable when they're treated as executable behavior, not just documentation.
That doesn't mean you need to use them everywhere or model everything with them. They're most useful when you have behavior where the answer to "what happens next?" depends on both the current state & the event. A statechart can act as an oracle for questions like: "Given I'm in this state, when this event happens, what is the next state, and what effects should run?"
I'm close to releasing an alpha of the next major version of XState, focused on better ergonomics, type safety, and composability, as well as a new visualizer/editor.
There's also an open-source basic statechart visualizer here: https://sketch.stately.ai
For the formal/spec side, SCXML is worth reading: https://www.w3.org/TR/scxml
Also worth reading the original paper by David Harel: https://www.weizmann.ac.il/math/harel/sites/math.harel/files...
-
> There will not be a [..] process for submitting patches by [any] means
> Outside involvement still matters: clear bug reports
So I can find a bug, I can fix it, but I am not allowed to tell them how exactly I did it.
Instead they have to re-figure it out. The team must be thrilled to re-do work they know was already put in by others, repeatedly.
As a user-and-eveloper, why would I sink time into a project with such rules that put a barrier to improving my life with the software? It seems much easier to use Firefox or Chromium, where my fixes actually meet open ears.
It was very useful for me in the past when a new Chromium version crashed on my product, that I could go and suggest a fix to V8, and it was rolled out in the next Chromium release so my product worked again (https://github.com/v8/v8/commit/4f8a70adca01c). Without this, maybe Chromium developers would have never bothered to fix it because of lack of time to figure it out.
> a pull request no longer tells us as much as it used to about the person submitting it
Nobody should need to know anything about any person submitting a pull request.
-
Interesting proposal, but with severe risks: becoming dependent on a single specific compiler and rustc could include malicious code that isn’t obvious to an outside auditor. See https://aeb.win.tue.nl/linux/hh/thompson/trust.html Ken Thompson demonstrated this.
But what will the future of RustPython be? https://github.com/RustPython/RustPython/
Major shifts like this are complex, not so only from a technical perspective but even more because a lot of humans with different opinions are involved. But radical changes are sometimes needed to be innovative again.
-
Project mention: Making your own programming language is easier than you think (but also harder) | news.ycombinator.com | 2026-05-09
I wish people would start with Nystrom's https://www.craftinginterpreters.com/ and avoid the dragon etc unless they really, really need it. Almost everything I have learnt about compiler/vm development, I have done so by reading random blogs and articles on various aspects and small tutorials on writing parsers and vms.
Even stuff like Crenshaw's Let's Build a Compiler was more useful to me than all these books that do lexical analysis using regular expressions. I have written lexers and parsers hundreds of times for all kinds of DSLs and config and not once have I used regular expressions to scan the text.
-
awesome-compilers
:sunglasses: Curated list of awesome resources on Compilers, Interpreters and Runtimes
-
-
-
Wren
The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
I was working on a custom runtime for minimal wasm apps recently. I didn't want to have to write all apps in C or Rust, so I went looking for tiny scripting languages. Lua is pretty small, but I wasn't able to get it to compile to pure wasm due to POSIX dependencies. This turned out to be quite easy with Wren[0]
[0]: https://github.com/wren-lang/wren/issues/1199
-
-
Project mention: Brimstone: ES2025 JavaScript engine written in Rust | news.ycombinator.com | 2025-11-16
It looks like Boa has Unicode tables compiled inside of itself: https://github.com/boa-dev/boa/tree/main/core/icu_provider
Brimstone does not appear to.
That covers the vast bulk of the difference. The ICU data is about 10.7MB in the source (boa/core/icu_provider) and may grow or shrink by some amount in the compiling.
I'm not saying it's all the difference, just the bulk.
There's a few reasons why svelte little executables with small library backings aren't possible anymore, and it isn't just ambient undefined "bloat". Unicode is a big one. Correct handling of unicode involves megabytes of tables and data that have to live somewhere, whether it's a linked library, compiled in, tables on disks, whatever. If a program touches text and it needs to handle it correctly rather than just passing it through, there's a minimum size for that now.
-
red
Red is a next-generation programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting and cross-platform reactive GUI, while providing modern support for concurrency, all in a zero-install, zero-config, single ~1MB file!
Project mention: Red is a next-generation programming language strongly inspired by REBOL | news.ycombinator.com | 2025-08-30 -
Project mention: Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig | news.ycombinator.com | 2025-12-12
Really neat clean code!
I like the single C file, but Docker if you want all the examples approach, that's really convenient for embedded.
Test coverage looks good as well, be interesting to see the metrics.
This would be quite cool for adding scripting to medical devices, avoiding the need to revalidate the "core" each time you change a feature.
An interesting comparison would be against an embedded WASM bytecode interpreter like https://github.com/bytecodealliance/wasm-micro-runtime, which is still much larger at 56.3K on a Cortex M4F.
-
CPython-Internals
Dive into CPython internals, trying to illustrate every detail of CPython implementation
-
AndroRAT
A Simple android remote administration tool using sockets. It uses java on the client side and python on the server side
-
-
Project mention: Clojure: The Documentary, official trailer [video] | news.ycombinator.com | 2026-03-31
-
-
Project mention: Show HN: Building a Programming Language for Myself | news.ycombinator.com | 2026-05-19
From the article: https://bhailang.js.org/ seems interesting, its something that I am able to understand the insider joke of as it is built upon the hindi language which is my native language.
This post is posted by the author so I have a few questions, I do think this is cool but I would really like something like this but perhaps firstly kotlin/java transpiler or golang/C or maybe even rust transpiler, this currently seems to be an interpreted language.
It could also be really interesting to see a language transpile to julia and then use a language like this but for gpu programming as Julia can natively compile to GPU's.
Perhaps I might have misread but how does it really end up running, does it run in javascript/typescript? I would really love something like teak but for minimalist android app creations fwiw if that interests the author.
-
cinder
This is Meta's fork of the CPython runtime. The name "cinder" here is historical, see https://github.com/facebookincubator/cinderx for the Python extension / JIT compiler. (by facebookincubator)
Project mention: We still chose C++ (instead of Rust) for new database development | news.ycombinator.com | 2025-09-29Full agree. Value types are underrated. That's one of the best things about C# and Go. They are increasing performance (with contiguous memory) and reducing GC pressure. I also believe that dynamically typed languages like Python would gain a lot by introducing a form of value types/unboxed values. For example, Cinder, Meta's internal version of CPython, supports what they call "static classes": https://github.com/facebookincubator/cinder?tab=readme-ov-fi....
-
OpenJ9
Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
-
GQL
GitQL is a extensible SQL-like query language and SDK to perform queries on various data sources such .git files with supports of most of SQL features such as grouping, ordering and aggregation and window functions and allow customization like user-defined types and functions
-
jquery.terminal
jQuery Terminal Emulator - JavaScript library for creating web-based terminals with custom commands
Interpreter discussion
Interpreter related posts
-
Arc v0.0.2-alpha – Release Notes
-
Arc v0.0.1-alpha – A Lightweight C-Based Programming Language
-
My thoughts after using Clojure for about a month
-
Expanding Project Glasswing
-
How to Run Classic ASP on Linux: A Step-by-Step Guide to Installing AxonASP on Ubuntu & Debian
-
The Green Side of the Lua
-
What it takes to transpose a matrix
-
A note from our sponsor - SaaSHub
www.saashub.com | 7 Jun 2026
Index
What are some of the best open-source Interpreter projects? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | open-interpreter | 63,811 |
| 2 | xstate | 29,671 |
| 3 | V8 | 25,065 |
| 4 | RustPython | 22,090 |
| 5 | Crafting Interpreters | 10,732 |
| 6 | awesome-compilers | 9,781 |
| 7 | sh | 8,796 |
| 8 | yaegi | 8,278 |
| 9 | Wren | 8,020 |
| 10 | enso | 7,438 |
| 11 | boa | 7,288 |
| 12 | red | 5,998 |
| 13 | wasm-micro-runtime | 5,963 |
| 14 | CPython-Internals | 5,042 |
| 15 | AndroRAT | 4,719 |
| 16 | gravity | 4,528 |
| 17 | janet | 4,291 |
| 18 | cling | 4,139 |
| 19 | bhai-lang | 4,108 |
| 20 | cinder | 3,786 |
| 21 | OpenJ9 | 3,522 |
| 22 | GQL | 3,497 |
| 23 | jquery.terminal | 3,235 |