【Rust 日报】2023-05-17 pgx -- 用于在 Rust 中开发 PostgreSQL 扩展的框架
pgx -- 用于在 Rust 中开发 PostgreSQL 扩展的框架
pgx是一个用于在 Rust 中开发 PostgreSQL 扩展的框架,并力求尽可能地惯用和安全。pgx 支持 Postgres v10-v14。
主要特征:
带有 cargo-pgx 的完全托管的开发环境;
# 快速创建新的扩展
cargo pgx new# 安装新的(或注册现有的)PostgreSQL 安装
cargo pgx init# 运行您的扩展程序并在(或pgcli)中进行交互式测试
cargo pgx runpsql# 跨多个 PostgreSQL 版本对您的扩展进行单元测试
cargo pgx test# 为您的扩展创建安装包
cargo pgx package
自动架构生成 完全用 Rust 实现扩展;
将许多 Rust 类型自动映射到 PostgreSQL;
动生成的 SQL 模式(或通过 手动生成cargo pgx schema);
包含带有 extension_sql 的自定义 SQL! & extension_sql_file!安全第一 将 Rust panic!s 转换为 Postgres ERRORs 中止交易,而不是进程;
内存管理遵循 Rust 的 drop 语义,即使面对 panic! 和 elog(错误);
#[pg_guard] 程序宏确保以上;
Postgres 基准是 Option where T: FromDatum;
NULL 数据安全地表示为 Option::::None。
等等...
那我们怎么使用呢?首先安装cargo-pgrx子命令并初始化开发环境:
cargo install --locked cargo-pgrx
cargo pgrx init
该init命令下载当前支持的 PostgreSQL 版本,将它们编译为~/.pgrx/,然后运行initdb. 也可以使用现有的(用户可写的)PostgreSQL 安装,或安装版本的子集
cargo pgrx new my_extension
cd my_extension
这将为扩展包创建一个新目录。
$ tree
.
├── Cargo.toml
├── my_extension.control
├── sql
└── src└── lib.rs2 directories, 3 files
新扩展包括一个示例,因此您可以继续并立即运行它。
cargo pgrx run
这会将扩展编译为共享库,将其复制到指定的 Postgres 安装,启动该 Postgres 实例并将您连接到与扩展同名的数据库。一旦 cargo-pgrx 将我们带入 psql,我们就可以加载扩展并对示例函数执行 SELECT。
my_extension=# CREATE EXTENSION my_extension;
CREATE EXTENSIONmy_extension=# SELECT hello_my_extension();hello_my_extension
---------------------Hello, my_extension
(1 row)
https://github.com/tcdi/pgrx
在 Rust 中构建一个简单的 grep CLI 应用程序
本文说明了我们如何在 Rust 中构建一个 CLI 应用程序,它是 grep 的一个非常基本的实现。 这个应用程序将有 2 种操作模式:从标准输入管道输入并搜索它们,以及读取文件并搜索它。 该程序的输出将是与搜索词匹配的行,其中包含突出显示的词。 本文涵盖了终端中的 stdin 操作、检测终端何时处于 tty 模式与 pipe 模式、执行简单的文件 I/O、创建非消耗性构建器、管理结果以及构建简单的 CLI 界面等主题。 我们正在构建的应用程序设计非常简单。 它让我们准备好接下来使用像 termion 和 tui 这样的 crates 来构建更复杂的 TUI 应用程序。
https://developerlife.com/2022/03/02/rust-grep-cli-app/
https://github.com/r3bl-org/r3bl_rs_utils
From 日报小组 侯盛鑫 mock
社区学习交流平台订阅:
Rust.cc 论坛: 支持 rss
微信公众号:Rust 语言中文社区
【Rust 日报】2023-05-17 pgx -- 用于在 Rust 中开发 PostgreSQL 扩展的框架相关推荐
- English Learning - L3 综合练习 3 VOA-Food 2023.05.17 周三
English Learning - L3 综合练习 3 VOA-Food 2023.05.17 周三 句 1 句 2 句 3 句 4 句 5 句 6 句 7 句 8 句 9 句 10 句 11 句 ...
- 【Rust 日报】2023-1-19 Lars Bergstrom当选为Rust基金会董事会主席
hyper 2022年的回顾 hyper在2022年发生了很多事情,本篇博文回顾了这一年以来的一些进展. 原文: https://seanmonstar.com/post/70680239226036 ...
- 【Rust日报】2021-10-19 rs-merkle:一个用Rust编写的高级散列树库
rs-merkle:一个用Rust编写的高级散列树库 rs_merkle: an advanced hash tree library for Rust rs-merkle是一个高级的Rust mer ...
- 【Rust日报】2020-10-02 移动操作系统SailfishOS支持Rust了
移动操作系统SailfishOS支持Rust了 链接:https://forum.sailfishos.org/t/release-notes-pallas-yllastunturi-3-4-0/22 ...
- 【Rust 日报】2022-03-27 Google对25名Rust开源贡献者做出奖励
Google对25名Rust开源贡献者做出奖励 Rust 是系统级编程语言,重点关注内存安全.Google 在一些项目中使用了 Rust:包括 Android.Fuchsia 和 ICU4X:并一直参 ...
- 【Rust日报】2021-10-05 Mimic: 一款用Rust语言编写的命令行Gameboy模拟器
Mimic: 一款用Rust语言编写的命令行Gameboy模拟器 Mimic: A Gameboy emulator written in Rust that can be played on the ...
- 【Rust日报】2020-04-13 Ruma,Flutter RS,Valora,Rust SSH,mathbench
1 - Ruma死掉了, Ruma万岁! 于2020年4月10日 Ruma is dead, long live Ruma! April 10, 2020作者:Jonas Platte Ruma是一组 ...
- 【Rust日报】2020-10-12 蜜月期之后的 Rust
蜜月期之后的 Rust 使用每一种语言就如同每段感情一样, 都有蜜月期. 当蜜月期过后, Rust 是否还是你的最爱呢? 作者两年前就写过 <<爱上Rust>> 的相关博客. ...
- java cuba_CUBA平台–用于快速应用程序开发的开源Java框架
java cuba 传统上,自计算时代开始以来,企业软件开发自然面临着一个挑战,当时自然而然地,企业软件开发本应专注于解决实际的业务问题,但与此同时,开发人员必须在技术上花费大量时间和精力.解决方案的 ...
- CUBA平台–用于快速应用程序开发的开源Java框架
传统上,自计算时代开始以来,企业软件开发自然面临着一个挑战,当时自然而然地,企业软件开发本应专注于解决实际的业务问题,但与此同时,开发人员必须在技术上花费大量时间和精力.解决方案的一面,例如架构和通用 ...
最新文章
- data-参数说明(模态弹出窗的使用)
- .net 显示时间为YYYY-MM-DD格式
- Active Diretory 全攻略(三)--建立域(2)
- 小学5年级计算机考试作文,我的小学老师五年级优秀作文(通用10篇)
- 吃香椿的注意事项:焯水
- luogu P5304 [GXOI/GZOI2019]旅行者
- 36 | 套路篇:怎么评估系统的网络性能?
- 投资学习网课笔记(part8)--基金第八课
- 前端学习(2788):完成图片商品数据页面渲染
- python etree创建xml_Python构建XML树结构的实例教程
- 【源码阅读】看Spring Boot如何自动装配ActiveMQ收发组件
- Linux下Git免输密码解决方式
- linux emule 编译 wx-config --libs,Linux下的wxWidgets静态编译实现方法
- mysql 查看锁表_MySQL的四种事务隔离级别
- 后缀学习第三课(下)
- 如何用计算机设置热点,Win7如何在笔记本电脑设置热点wifi?
- Linux debian利用ifconfig查看IP地址
- 什么是git 暂存区
- 【OpenVINO 3】POT量化流程
- mac上使用nginx代理
热门文章
- 浅谈市场推广的一些思路
- 分析竞争对手对网站优化的好处
- 跳台阶问题(一次只能跳1阶或者两阶)
- 三个人比身高c语言,C语言的那些题(三) —— 编程计算身高问题
- win8计算机睡眠无法唤醒,Win8电脑睡眠后唤醒不了怎么办?
- react动态添加一行,实现删除,新增,编辑
- Kioptrix: Level 3靶机实战 lotu cms +sql注入 getshell ht编辑器有root权限,修改/etc/sudoers文件使当前用户具有root权限 提权
- iOS设备管理软件 for windows2.17.12官方版
- 基于Java毕业设计志愿者网上服务平台的设计与实现源码+系统+mysql+lw文档+部署软件
- 计算机网络管理的模型结构,计算机网络体系结构及协议之基本参考模型