quickjs
llrt
quickjs | llrt | |
---|---|---|
76 | 17 | |
9,309 | 8,462 | |
1.0% | 0.3% | |
9.4 | 9.6 | |
11 days ago | 6 days ago | |
C | Rust | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
quickjs
-
SQLite JavaScript: Extend your database with JavaScript
This is a fantastic approach.
BTW, it looks like the js engine is "QuickJS" [0]. (I'm not familiar with it myself.)
I like it because sqlite by itself lacks a host language. (e.g., Oracle's plsql, Postgreses pgplsql, Sqlserver's t-sql, etc). That is: code that runs on compute that is local to your storage.
That's a nice flexible design -- you can choose whatever language you want. But quite typically you have to bring one, and there are various complications to that.
It's quite powerful, BTW, to have the app-level code that acts on the app data live with the data. You can present cohesive app-level abstraction to the client (some examples people will hopefully recognize: applyResetCode(theCode) or authenticateSessionToken(), or whatever), which can be refined/changed without affecting clients. (Of course you still have to full power and flexibility of SQL and relational data for the parts of your app that need it.)
[0] https://bellard.org/quickjs/
-
JSLinux
Considering the extremes of prolific developers gives interesting contrast to dogmas such as "functions/files should never be above x lines", where `quickjs.c` is 50k lines and has functions that are hundreds of lines long:
https://github.com/bellard/quickjs/blob/master/quickjs.c
(Obviously different approaches suites different circumstances.)
- QuickJS JavaScript Engine
-
Servo in 2024: stats, features and donations
And some lightweight alternatives like Bellard's QuickJS (https://bellard.org/quickjs/) in C and Kiesel (https://kiesel.dev/) in Zig.
-
Building Static HTML Pages with JSX Server-Side Rendering
Built on a highly optimized JavaScript runtime powered by QuickJS, Query offers fast startup times and efficient execution. Its built-in caching mechanism further enhances performance by storing function responses, reducing database load and latency. This focus on speed makes Query a standout choice for server-side rendering, especially in applications with many components.
- Lua Is So Underrated
-
Introducing our Next-Generation JavaScript SDK
Where the previous SDK was built on top of the QuickJS JavaScript engine and the Javy runtime, the new SDK is built on top of the Firefox browser’s SpiderMonkey engine, and the Bytecode Alliance’s StarlingMonkey runtime and ComponentizeJS WIT bindings generator.
-
QuickJS: Handle Typescript Sourcemap
I'm currently using Bellard's QuickJS engine on a new TypeScript project.
- [Lab] AWS Lambda LLRT vs Node.js
llrt
-
Building Runtime-agnostic Apps/Packages with JavaScript
Node.js popularized the concept of running JavaScript on the server. Today, there are more JavaScript runtimes intended for building server-based applications, with Bun and LLRT among the most recent I'm aware of. Deno has been around for some years, and their Version 2 release seems to hit a chord because it has better compatibility with the Node.js API.
-
Servo in 2024: stats, features and donations
AWS' LLRT runtime just switched to QuickJS-NG [0]
0. https://github.com/awslabs/llrt/pull/669
-
Building Static HTML Pages with JSX Server-Side Rendering
AWS LLRT Modules
-
Show HN: Self-Host Next.js in Production
Any plans to add support for? https://github.com/awslabs/llrt
It would also be nice to have a V8/deno/bun based edge hosting option that supports the Next.js edge and middleware code splitting. That's the missing piece for most homebrew "edge" setups. Production CDNs like Clouflare and Supabase all offer this.
-
Everything Suffers from Cold Starts
Vlad Ionescu: Scaling containers on AWS in 2022 GitHub: awslabs/llrt AWS Documentation: Understanding the Lambda execution environment Amazon Science: How AWS's Firecracker virtual machines work Lumigo GitHub: MiddyJS
-
Porffor: A from-scratch experimental ahead-of-time JS engine
Its refreshing to see all the various JS engines that are out there for various usecases.
I have been working on providing quickjs with more node compatible API through llrt [1] for embedding into applications for plugins.
[1] https://github.com/awslabs/llrt
-
[Lab] AWS Lambda LLRT vs Node.js
AWS has open-sourced its JavaScript runtime, called LLRT (Low Latency Runtime), an experimental, lightweight JavaScript runtime designed to address the growing demand for fast and efficient Serverless applications.
-
Unlocking Next-Gen Serverless Performance: A Deep Dive into AWS LLRT
FROM --platform=arm64 busybox WORKDIR /var/task/ COPY app.mjs ./ ADD https://github.com/awslabs/llrt/releases/latest/download/llrt-container-arm64 /usr/bin/llrt RUN chmod +x /usr/bin/llrt ENV LAMBDA_HANDLER "app.handler" CMD [ "llrt" ]
-
Is AWS Lambda Cold Start Still an Issue?
Let’s get the simplest use case out of the way: cases where the cold starts are so fast that it’s not an issue for you. That’s usually the case for function that use runtimes such as C++, Go, Rust, and LLRT. However, you must follow the best practices and optimizations in every runtime to maintain a low impact cold start.
-
JavaScript News, Updates, and Tutorials: February 2024 Edition
But compared to other runtimes, LLRT is not so good in terms of performance when it comes to dealing with large data processing, Monte Carlo simulations, or performing tasks with a large number of iterations. The AWS team says that it is best suited for working with smaller Serverless functions dedicated to tasks such as data transformation, real-time processing, AWS service integrations, authorization, validation, etc. Visit the GitHub repository of this project to learn more information.
What are some alternatives?
Duktape - Duktape - embeddable Javascript engine with a focus on portability and compact footprint
pljs - PLJS - Javascript Language Plugin for PostgreSQL
LuaJIT - Mirror of the LuaJIT git repository
mud-pi - A simple MUD server in Python, for teaching purposes, which could be run on a Raspberry Pi
jerryscript - Ultra-lightweight JavaScript engine for the Internet of Things.
workerd - The JavaScript / Wasm runtime that powers Cloudflare Workers