--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/quarkus-dev/c04513d4-5b6b-44f7-a45c-3e79d324e127n%40googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/quarkus-dev/CANYWk7MtkHqxqD16%3DWJZ552GTeYgdE%3DNx9pZhvGj0BhwnXb6_g%40mail.gmail.com.
Georgios Andrianakis
Independent Contractor
To view this discussion visit https://groups.google.com/d/msgid/quarkus-dev/efd1b46b-c2b3-4cdb-adfd-36e83cfb6a76n%40googlegroups.com.
Hi!
Regarding QuickJS, it’s used at scale by companies like Shopify (via Javy) to run untrusted user code securely within their infrastructure.
GraalJS doesn't offer the same level of security guarantees.
Since it's a Node.js replacement, it exposes the full Node API, allowing access to system resources like the file system and sockets.
In contrast, with a pure JavaScript engine like QuickJS, you explicitly expose only the functionality you want.
This gives the host environment (Java, in our case) full and fine-grained control over what JS code can do.
Additionally, to fully leverage the performance benefits of GraalJS, you typically need to run on GraalVM itself.
While it’s technically possible to use GraalJIT on other JVM distributions, it’s challenging.
In comparison, we compile QuickJS to pure, self-contained Java bytecode, which makes it extremely portable.
As always, it's about trade-offs and choosing the right tool for the job. :-)
To view this discussion visit https://groups.google.com/d/msgid/quarkus-dev/3c997933-df17-4d25-9871-b30d389a98e5n%40googlegroups.com.