3个不稳定版本

0.2.1 2018年12月28日
0.2.0 2018年12月27日
0.1.0 2018年12月27日

#2211 in 数据库接口

MIT/Apache

16KB
208

Rust基于的postgres扩展

这个crate提供的主要功能是一些宏,帮助在Rust中编写Postgres扩展。

目标(并非所有功能都已实现)

  • 自动类型转换,参见 PgDatumTryFromPgDatumInto<PgDatum>
  • pg_magic 宏用于声明库为Postgres扩展
  • pg_extern 属性用于将Rust函数包裹在Postgres C风格定义中
  • panic处理程序,用于转换为Postgres错误
  • 使用Postgres palloc 分配器和 pfree 的分配器
  • tbd 将postgres错误日志与 log 集成
  • tbd 支持所有Datum类型
  • tbd 支持类似表返回和操作
  • tbd 生成用于加载函数的psql脚本

构建

首先安装Postgres。安装完成后,需要设置以下环境变量

PG_INCLUDE_PATH=[/路径//postgres]/包含/服务器#e.g. /usr/local/pgsql/包含/服务器

此环境变量也用于编译动态库

RUSTFLAGS="-C link-arg=-undefineddynamic_lookup"

这通知链接器,postgres的一些符号直到运行时在动态库加载时才可用。

示例

依赖关系

~0.3–3MB
~61K SLoC