PL/Python, PL/v8, PL/Perl, PL/Rust, and other Postgres extensions for procedural languages — run app logic inside the database. Ranked by GitHub stars.
PL/JavaScript (v8) trusted procedural language
extended check for plpgsql functions
Use PRQL in PostgreSQL - Pipelined Relational Query Language
Use PRQL in PostgreSQL - Pipelined Relational Query Language
Trusted Language Extensions for PostgreSQL
Trusted JavaScript procedural language for PostgreSQL using the QuickJS engine.
Trusted JavaScript procedural language for PostgreSQL using the QuickJS engine.
Adds C# and F# as loadable procedural languages for PostgreSQL functions, procedures, triggers, and set-returning functions.
Adds C# and F# as loadable procedural languages for PostgreSQL functions, procedures, triggers, and set-returning functions.
load R interpreter and execute R script from within a database
load R interpreter and execute R script from within a database
server-side support for profiling PL/pgSQL functions
server-side support for profiling PL/pgSQL functions
Provides PL/R, a PostgreSQL procedural language for writing functions in the R statistical computing language.
Provides PL/R, a PostgreSQL procedural language for writing functions in the R statistical computing language.
server-side support for debugging PL/pgSQL functions
server-side support for debugging PL/pgSQL functions
Adds Julia as a loadable procedural language for writing PostgreSQL functions, with type conversions for arrays and composite types.
Adds Julia as a loadable procedural language for writing PostgreSQL functions, with type conversions for arrays and composite types.
Procedural language extensions let you write Postgres stored procedures, functions, and triggers in languages other than PL/pgSQL. PL/Python is the most popular — runs Python directly in the database, useful for ML inference, complex data transformations, and reusing existing Python libraries (NumPy, Pandas, scikit-learn). PL/v8 runs JavaScript via the V8 engine — useful for JSON-heavy workloads and code shared with frontend logic. PL/Rust offers a sandboxed Rust runtime for performance-critical functions. PL/R brings R to the database for statistical computing. PL/Perl and PL/Tcl are older but still maintained for legacy code.
Reach for a PL extension when the business logic is inherently better expressed in another language and the data already lives in Postgres — running a Python ML model row-by-row, generating complex reports with NumPy/Pandas helpers, executing JavaScript-based business rules near the data. Avoid when the logic could live in the application layer — moving compute into the database trades flexibility, observability, and deploy-ability for a small latency win. Avoid PL/Python's untrusted variant (plpython3u) on shared infrastructure — it bypasses Postgres' security model and gives functions unrestricted OS access.
1bench is a modern GUI client for PostgreSQL — install extensions, write queries, and inspect schemas without leaving the IDE.
Try 1bench for PostgreSQL