Rust based postgres extension
The main things provided by this crate are some macros that help with writing Postgres extensions in Rust.
The objective (not all these are yet implemented):
- Automatic type conversions, see
pg_magicmacro for declaring libraries as Postgres extensions
pg_externattribute for wrapping Rust functions in Postgres C style definitions
- panic handlers for conversion into Postgres errors
- allocator that uses Postgres
- tbd integrate postgres error logs with
- tbd support all Datum types
- tbd support table like returns and manipulation
- tbd generators for the psql scripts to load functions
First install Postgres. Once installed, this environment variable is required:
PG_INCLUDE_PATH=[/path/to/postgres]/include/server # e.g. /usr/local/pgsql/include/server
This environment variable is also required for the dynamic libraries to compile:
This informs the linker that some of the symbols for postgres won't be available until runtime on the dynamic library load.
To use the postgres allocator, the feature
pg_allocator must be defined and enabled in the implementing crate.