这篇文章介绍了一个名为BuFFI的新工具,用于为Rust代码生成人性化和安全的C++API。BuFFI将所有类型替换为字节缓冲区,从而简化了Rust和C++两端的外部函数。作者在工作中使用该工具删除了数百行样板代码,并消除了许多可能的内存泄漏或错误指针处理。
文章提供了BuFFI的链接、幻灯片和一个基本示例。该工具目前支持Rust 1.82.0工具链,未来每次Rust发布新版本时,BuFFI也会发布新版本以保持兼容性。作者希望能与社区一起解决任何潜在的兼容性问题。
总的来说,BuFFI旨在简化Rust和C++之间的互操作性,提高安全性和工作效率。
https://old.reddit.com/r/rust/comments/1gouxoc/buffi_generate_ergonomic_c_apis_for_your_rust_code/
这个视频是Jon Gjengset在EuroRust 2024大会上的演讲。他指出在编写Rust代码时,我们经常会遇到一些令人困惑的编译器错误和限制,例如为什么某些类型需要实现Send trait、为什么某些生命周期注解看起来很复杂、异步代码为何只使用单核等等。这些问题源于对Rust底层原理和机制缺乏理解。演讲的目的是解释这些深层次概念,帮助开发者自行诊断和避免80%的常见挑战。
Jon自2015年开始使用Rust,曾在麻省理工学院构建一个快速SQL数据库作为博士论文。他现在是Helsing公司的首席工程师,也是Rust教学书籍"Rust for Rustaceans"的作者。他热衷于教学,自2018年以来一直制作Rust实时编码和教育视频,还是"Rustacean Station"播客的合伙人。EuroRust是一年一度为欧洲Rust社区举办的为期两天的大会。
https://youtu.be/8-KLX1PGg8Q?si=rqkSm2fHVafnF-cO
ipass 命令行工具,用于与 Apple macOS 密码(iCloud密钥链)进行交互。它是使用 Rust 语言重写的 apw 项目,因为原先的 apw 项目在作者的 M3 macOS 15.0.1 系统上无法运行。
ipass 利用 macOS 14 及更高版本中的内置辅助工具来实现此功能。你可以通过发行页面下载二进制文件,或使用 cargo 命令从源码安装。使用前需要先通过 ipass start 启动后台守护进程,并使用 ipass auth 进行身份验证。
它允许你列出特定域名的可用密码、获取密码等操作。
https://github.com/kezhenxu94/ipass
Wild 是一个新的链接器,目标是在迭代开发过程中实现非常快速的链接。它目前还是一个正在进行的工作,不应该被用于生产环境的二进制文件链接。
Wild链接器主要的动机是现有的mold链接器虽然很快,但不支持增量链接,而作者也没有计划添加这个功能。Wild虽然目前还没有增量链接,但这是最终目标。通过用Rust编写,希望能够解决增量链接的复杂性。
目前Wild支持在Linux上对x86-64架构进行静态链接、静态PIE链接、动态链接和共享对象链接,并支持Rust proc-macro。但还缺少很多功能,如增量链接、其他架构支持、更多链接器参数支持、链接脚本支持、Mac和Windows支持以及LTO支持等。
该项目进行了一些基准测试,表明在非增量链接场景下,Wild的速度相当高效并能较好利用多线程。但测试还非常初步,对其他场景如大型二进制文件链接等性能还未可知。
作者欢迎贡献,并提供了使用Wild链接Rust代码的cargo命令示例。该项目取名"Wild"是因为链接器的名称通常以"ld"结尾,加上期望实现增量(Incremental)链接的"I",再加上开源项目习惯使用递归首字母缩略词,所以就叫Wild。
https://github.com/davidlattimore/wild
--
From 日报小组 Mike
社区学习交流平台订阅:
原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。