# plv8/plv8

V8 Engine Javascript Procedural Language add-on for PostgreSQL

Repository: https://github.com/plv8/plv8
Canonical: https://ross.abutalabs.com/products/plv8
Homepage: https://plv8.github.io/
Language: C++
License: NOASSERTION
License Family: other
Topics: plv8, procedural-language, database, postgresql, postgres, postgresql-extension
Last push: 2026-05-07T16:33:49+00:00

## Health v2 (maintenance only)
Score: 69/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 81, release rhythm 35, longevity 100
- inputs: {"age_days": 4190, "days_push": 118, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2052, forks 154 (observed 2026-08-28T04:06:09.633504+00:00)

## What it is
PLV8 is a PostgreSQL extension that adds a trusted procedural language powered by the V8 JavaScript engine, letting you write stored procedures, triggers, and functions in JavaScript callable from SQL. It provides built-ins for logging, database access via SPI, prepared plans, cursors, and automatic type mapping between JavaScript and PostgreSQL.

## Use cases
- write stored procedures in javascript for postgres
- create postgres triggers using javascript
- run javascript inside postgresql queries
- use v8 engine as a postgres procedural language
- process  data in postgres with javascript
- define custom postgres functions without plpgsql

## When to choose
- you need JavaScript logic inside PostgreSQL as functions, triggers, or inline DO blocks
- your team prefers JavaScript over PL/pgSQL or PL/Python for database logic
- you want automatic mapping between JavaScript values and PostgreSQL types

## When to avoid
- you only need simple SQL logic that PL/pgSQL handles well
- you cannot install native extensions on your managed Postgres service
- you need a sandboxed, untrusted language for public multi-tenant databases

## Facets
- artifact type: library
- maturity: active
- function: database, interpreter, developer-tools
- domain: databases, developer-tools, backend
- platform: self-hosted
- tags: postgresql-extension, v8, javascript, stored-procedures, procedural-language, triggers, linux, macos, docker

## Member repositories
- plv8/plv8 (main) score 69

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:09.633504+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:57:26.633062+00:00, confidence not recorded.
  - readme: https://github.com/plv8/plv8 (fetched 2026-08-28T04:06:09.633504+00:00, sha 6194ea199ddf)
  - homepage: https://plv8.github.io/ (fetched 2026-08-29T10:37:39.541790+00:00, sha 091fbf149577)
- Data as of 2026-08-30T08:39:29.467469+00:00.
