JavaScript

Building a tiny JavaScript runtime with QuickJS

How I built a runtime with Duktape and then rebuilt it with QuickJS
D.javascript
Saúl Ibarra Corretgé
<p>QuickJS is a (small) JavaScript engine by Fabrice Bellard.</p> <p>Over the past 6 years I've built a couple of small JS runtimes, first using Duktape, then using QuickJS. The premise was to always use existing libraries to add functionality, including WASM support.</p> <p>This presentation will go through the differences of both libraries and the 2 projects I built leveraging them.</p>
There are many libraries out there which one can use to build a JS runtime these days, with the most well known one being V8. Node and Deno are both using V8, but how would a different take at building a JS runtime look like? I asked myself this question some years ago and started building a small project with Duktape. That project was ultimately a failure, but I learned very valuable lessons in runtime design and always wanted to revisit that project. Fast forward a few years, QuickJS was released by Fabrice Bellard, and I was excited! It was so easy to integrate that I began to implement a new runtime using it. This runtime is called txiki.js and while it's a small project it already integrates libuv for fast networking and the event loop, curl for making HTTP requests and wasm3 for WASM (and WASI!) support.

Additional information

Type devroom

More sessions

2/5/22
JavaScript
D.javascript
<p>A short introduction about JavaScript Devroom with some interesting resources about JavaScript and a presentation about this special day for the FOSDEM JS Devroom.</p>
2/5/22
JavaScript
Boubacar Siddighi BARRY
D.javascript
<p>Did you face the difficulty of choosing a right architecture solution for a specific project or a client while considering their “rather” complex environment? Do you feel like you need to change your tech stack continuously?</p> <p>If the answer is yes to both of the questions, join my talk about the solutions I’ve found so we can ca discuss your best practice as well.</p> <p>Accelerators (technology kits) are opinionated yet pragmatic that I’ve identified and tested on the projects ...
2/5/22
JavaScript
Trishul Goel
D.javascript
<p>From loading Ajax requests in browsers to have full-blown frameworks; Javascript has come a long way. While moving stuff from backend to frontend the problems of backend are also ported. The Bigger the code gets bigger the problems, more dependencies, harder maintainability, eventually all the problems of a huge monolith. With MicroFrontends, we can break this monolith into smaller independent, maintainable apps. Sounds good? Let’s see how in this talk.</p>
2/5/22
JavaScript
Sean Levin
D.javascript
<p>Behavior Graph is a software architecture and state management library. It greatly enhances your ability to write complex user facing software and control systems.</p> <p>Broadly speaking, it belongs to the category of libraries which includes Redux, MobX, Rx (Reactive Extensions), and XState.</p> <p>It works by providing a new unit of composition which we call the behavior. Behaviors are simple blocks of code together with their dependency relationships.</p> <p>We developed Behavior Graph to ...
2/5/22
JavaScript
Fabien Benetou (@Utopiah)
D.javascript
<p>We keep on hearing about the metaverse but what is it and more importantly, can JS be used to build it?</p> <p>We'll briefly clarify what the metaverse is and give practical examples today with federated virtual reality servers managed by different persons.</p>
2/5/22
JavaScript
Louis Foster
D.javascript
<p>(With a $4 microcontroller to build fun, accessible, and unique forms of interaction)</p> <p>The magic of computers and smartphones is the fact that they provide a very malleable interface - the screen. Without having to manufacture extra parts for every new application, this is a massive time and cost saving for engineers. However, this comes at a cost of accessibility and usability, as well as diminishing the physical connection one might have to the device they are using. Physical ...
2/5/22
JavaScript
Igor Lukanin
D.javascript
<p>I want to explain how to build data-intensive Jamstack apps with outstanding performance, low costs, and scalability while having great developer experience.</p>