←back to thread

11 points jerrysievert | 2 comments | | HN request time: 0.424s | source

PLJS is a new, modern JavaScript trusted language extension, bundling QuickJS, a small and fast JavaScript runtime with Postgres, providing fast type conversion between Postgres and JavaScript, fast execution, and a very light footprint.

Here are bencharks that show how it compares to PLV8: https://github.com/plv8/pljs/blob/main/docs/BENCHMARKS.md

This is the first step toward a truly light-weight, fast, and extensible JavaScript runtime embedded inside of Postgres. The initial roadmap has been published at https://github.com/plv8/pljs/blob/main/docs/ROADMAP.md

You can join the discussion by joining the PLV8 Discord: https://discord.gg/XYGSCfVNBC

You can find PLJS at https://github.com/plv8/pljs

1. oulipo ◴[] No.44381914[source]
What would be the typical use-case? Light data transformation?

Is there a significant advantage over Rust-based embedded Postgres language like https://github.com/tcdi/plrust which is compiled and a bit more type-safe?

replies(1): >>44382014 #
2. tehlike ◴[] No.44382014[source]
A lot of logic just becomes easier with javascript. If you have complex-ish trigger logic, or a procedure etc - doing these in pl/pgsql is just hard if not intracatable. Also allows up reuse of a lot of code that people have built with npm - even if not directly with require(), it becomes possible to bundle compiled binary.

I used this for storing patches of data (to save space, compression is a pain in Postgres) and applying runtime to show full version etc. It's fun.