Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/plv8/plv8

V8 Engine Javascript Procedural Language add-on for PostgreSQL
https://github.com/plv8/plv8

database plv8 postgres postgresql postgresql-extension procedural-language

Last synced: 3 days ago
JSON representation

V8 Engine Javascript Procedural Language add-on for PostgreSQL

Awesome Lists containing this project

README

        

# PLV8 - A Procedural Language in Javascript powered by V8

PLV8 is a shared library that provides a PostgreSQL procedural language powered
by V8 Javascript Engine. With this program you can write in Javascript your
function that is callable from SQL.

## Support

There is a [Discord](https://discord.gg/XYGSCfVNBC) available for general questions and support. Please
ask there before opening an issue.

## Build Requirements

Note that as PLV8 3.2, build requirements have again changed.

### Linux

The following packages must be installed to build on Ubuntu or Debian:

- `libtinfo5`
- `build-essential`
- `pkg-config`
- `libstdc++-12-dev` (depending on version, may be 10 instead of 12)
- `cmake`
- `git`

The following packages must be installed to build on EL9 or EL8:

- 'development tools' - via groupinstall
- `cmake`
- `git`

### MacOS

The following packages must be install to build on MacOS:

- `XCode` - and the command line tools
- `cmake`

## Building

Building plv8 needs to have all build requirements fulfilled before building.
You must make sure that `pg_config` is in your path. It should share the same
installation directory as `psql` and `postgres`.

```sh
make
```

### Installing

This should install plv8 as an available extension into Postgres.

```sh
make install
```

### Run Tests

Postgres features a test runner, and plv8 includes a number of tests that can be
run.

```sh
make installcheck
```

## Running

=# CREATE EXTENSION plv8;

This will install PLV8 into your database if it exists as an available extension.

## Testing

To test, you can execute:

=# DO $$ plv8.elog(NOTICE, "hello there!"); $$ LANGUAGE plv8;

For full documentation, see [https://plv8.github.io/](https://plv8.github.io/).

## Docker

For Docker support, see [./platforms/Docker/README.md](./platforms/Docker/README.md)