Repository navigation
Subprocess-brokered polyglot vs in-process — tradeoffs I hit building a 10-runtime host #14206
Unanswered
RicKanjilal
asked this question in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I built Sym, a polyglot host that takes the opposite tradeoff from GraalVM: instead of embedding runtimes in-process, it launches each as a worker and brokers a neutral object model between them. Live objects stay put and travel as handles with distributed GC.
The obvious costs are per-call latency and no shared memory. What I got is ten runtimes (JVM, Node, CPython, PHP, Ruby, R, Perl, plus compiled Go/Rust blocks and C via FFI) in one protocol small enough to read in an evening — 80-cell test matrix, green in CI.
Two questions for people who've gone deeper than me: (1) where does the subprocess model break down that I haven't hit yet at my scale, and (2) how does Truffle handle object identity across languages — my handle table feels naive next to what you'd need for real interop?
https://github.com/RicKanjilal/sym.git
All reactions