oops:为危险 Shell 命令自动做快照
oops 是一个用 Rust 编写的 Linux 工具,用于在执行潜在破坏性 Shell 命令前创建文件快照,命令出错后可执行回滚。
它通过 shell preexec hook 拦截命令,将命令发送给后台 daemon 分析;判定为危险操作后,在命令执行前对受影响路径创建快照。在 Btrfs 和 ZFS 上优先使用 reflink,其他文件系统回退到普通复制。元数据保存在 SQLite 中,命令历史支持浏览、diff、pin / unpin 和 GC,默认保留策略为 48 小时或 2 GB。
项目说明的限制包括:不处理 cron、systemd service、GUI 程序或非交互 shell 发起的破坏性命令,目前只保护 > file 这类截断重定向。
原文链接:https://github.com/programmersd21/oops
Rust in Production:JetBrains 讲 RustRover、Fleet 与 Rust 工具链取舍
这期 Rust in Production 是一期介绍 JetBrains Rust 工具开发的播客,嘉宾为 JetBrains 的 Orhun Parmaksız。
节目讨论了 JetBrains 不把 IntelliJ 平台整体重写为 Rust 的原因、Fleet 文件系统守护进程使用 Rust 的情况,以及 Rust 组件采用进程外 helper 形式的考虑。RustRover 部分涉及 PSI、THIR、基于 MIR 的调试表达式求值、proc macro 沙箱和 parser regression testing,也比较了 RustRover 与 rust-analyzer 的架构方向。
节目还介绍了 JetBrains 在大型代码库、测试基础设施和 IDE 诊断误报控制方面的工程经验。
原文链接:https://corrode.dev/podcast/s06e09-jetbrains/
Tabularis:拆解一个约 15 MB 数据库客户端的 Rust 依赖栈
这篇文章是 Tabularis 团队对其约 15 MB 数据库客户端的 Rust 依赖和边界设计所做的工程复盘。
文章说明了各项组件的选择:MySQL 和 SQLite 使用 SQLx,PostgreSQL 使用 tokio-postgres;TLS 主路径采用 rustls,同时保留 OpenSSL 以兼容其他客户端的导入格式;SSH 同时支持 russh 和系统 ssh。
文中还记录了 PostgreSQL 扩展类型处理、sslmode 兼容、自定义证书校验,以及 GUI 应用调用系统 ssh 时通过 SSH_ASKPASS 接收 passphrase 等实现细节。
原文链接:https://tabularis.dev/blog/rust-stack-inside-a-15mb-database-client
Keel 0.4:静态类型解释型语言新增匿名函数与更完整 FFI
Keel 是一门用 Rust 实现的静态类型解释型语言,0.4 版本新增匿名函数、高阶函数和更多 FFI 能力。
本次更新加入显式参数类型、匿名函数、高阶函数,以及标准库中的 map 和 filter。FFI 新增结构体与布尔值的传参与返回支持,模块系统改进了循环导入处理。
项目同时提供 VS Code 扩展、官网文档和在线 Playground。嵌入 API 当前还没有内存和指令限制,相关功能已列入路线图。作者给出的性能对比显示,Keel 在部分场景下快于 Python,性能接近关闭 JIT 的 LuaJIT。
原文链接:https://github.com/horacehoff/keel/releases/tag/v0.4.0
评论区
写评论还没有评论