Rust.cc

Rust.cc -

【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.rs 2 directories, 3 files 新扩展包括一个示例,因此您可以继续并立即运行它。 cargo pgrx run 这会将扩展编译为共享库,将其复制到指定的 Postgres 安装,启动该 Postgres 实例并将您连接到与扩展同名的数据库。一旦 cargo-pgrx 将我们带入 psql,我们就可以加载扩展并对示例函数执行 SELECT。 my_extension=# CREATE EXTENSION my_extension; CREATE EXTENSION my_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 语言中文社区

pgx是一个用于在Rust中开发PostgreSQL扩展的框架,支持Postgres v10-v14。它具有完全托管的开发环境,自动架构生成,安全第一等特点。使用cargo-pgrx子命令可以初始化开发环境、创建新的扩展、运行扩展程序并进行交互式测试、对扩展进行单元测试和创建安装包。另外,本文介绍了如何在Rust中构建一个简单的grep CLI应用程序,涵盖了终端中的stdin操作、文件I/O、构建CLI界面等主题。

CLI PostgreSQL Rust pgx 文件I/O

相关推荐 去reddit讨论

热榜 Top10

Dify.AI
Dify.AI
LigaAI
LigaAI
eolink
eolink
观测云
观测云

推荐或自荐