3个不稳定版本
0.2.1 | 2018年12月28日 |
---|---|
0.2.0 | 2018年12月27日 |
0.1.0 | 2018年12月27日 |
#2211 in 数据库接口
16KB
208 行
Rust基于的postgres扩展
这个crate提供的主要功能是一些宏,帮助在Rust中编写Postgres扩展。
目标(并非所有功能都已实现)
- 自动类型转换,参见
PgDatum
和TryFromPgDatum
到Into<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