11---
22layout: post
33title: 'Introducing Quarkus quickjs4j: Seamless JavaScript Integration in Your Quarkus Applications'
4- date: 2025-07-14
4+ date: 2025-07-15
55tags: javascript, integration, cdi, build-time
66synopsis: A new Quarkiverse extension that brings JavaScript execution to your Java applications with compile-time code generation and full CDI integration.
77author: ewittman
@@ -14,7 +14,8 @@ ifdef::env-github,env-browser,env-vscode[:imagesdir: ../assets/images/posts/quic
1414We're excited to announce the release of the Quarkus quickjs4j extension, a powerful new addition to the
1515Quarkus ecosystem that enables seamless execution of JavaScript code within your Java applications. Built
1616on top of the https://github.com/roastedroot/quickjs4j[quickjs4j library], this extension brings the
17- lightweight QuickJS JavaScript engine to Quarkus with full CDI integration and compile-time optimizations.
17+ lightweight QuickJS JavaScript engine to both JVM and Native Quarkus, with full CDI integration and
18+ compile-time optimizations.
1819
1920Whether you need to execute dynamic business logic, implement configurable rules engines, or integrate with
2021JavaScript-based algorithms, the Quarkus quickjs4j extension provides a type-safe, performant solution that
@@ -180,7 +181,10 @@ public interface Calculator {
180181 int add(int a, int b);
181182 int multiply(int a, int b);
182183}
184+ ----
183185
186+ [source,java]
187+ ----
184188@ApplicationScoped
185189public class CalculatorContext {
186190 public void log(String message) {
@@ -292,9 +296,15 @@ community feedback. We're actively working on:
292296
293297- Enhanced error reporting and debugging capabilities
294298- Performance optimizations
295- - Additional JavaScript engine options
299+ - Configurable JavaScript engine options
296300- Improved IDE integration and tooling
297301
302+ In particular, we have a lot of work to do in optimizing performance. There are
303+ clear tradeoffs to consider around flexibility and speed, as well as customization.
304+ The current experimental implementation takes a very conservative approach to
305+ ensure full sandboxing and thread safety. The result is a slower implementation,
306+ but one that is guaranteed to be thread safe and fully sandboxed.
307+
298308== Getting Involved
299309
300310The Quarkus quickjs4j extension is part of the Quarkiverse ecosystem and welcomes community
@@ -305,7 +315,9 @@ contributions. Whether you're interested in:
305315- Sharing use cases and examples
306316- Improving documentation
307317
308- Visit our https://github.com/quarkiverse/quarkus-quickjs4j[GitHub repository] to get involved!
318+ Visit our https://github.com/quarkiverse/quarkus-quickjs4j[GitHub repository] to get involved.
319+ We would really love for you to try out quickjs4j in Quarkus and give us feedback. The best
320+ way to evolve the functionality is by hearing from users!
309321
310322== Conclusion
311323
@@ -318,9 +330,9 @@ Try it out and let us know what you think! We're excited to see what the communi
318330capability.
319331
320332== Links and Resources
333+ If you want to learn more about QuickJS itself, or the upstream quickjs4j Java project,
334+ here are some helpful links:
321335
322336- https://github.com/quarkiverse/quarkus-quickjs4j[Quarkus quickjs4j GitHub Repository]
323337- https://github.com/roastedroot/quickjs4j[quickjs4j Library]
324338- https://bellard.org/quickjs/[QuickJS JavaScript Engine]
325- - https://quarkus.io/extensions/[Quarkus Extensions]
326- - https://github.com/quarkiverse[Quarkiverse Hub]
0 commit comments