春晏的 Rust 开发笔记
你好,我是春晏(Christian Visintin),住在意大利乌迪内,是一名自由软件工程师,也做开源项目。这里专门聊 Rust:写代码时踩过的坑、折腾出来的东西,还有一些可能没必要、但我还是想说的看法。
最新文章
用 Fusibile 把远程文件系统挂载到本地
介绍如何用 Rust、RemoteFs 和 FUSE 把 SFTP、S3、WebDAV、Kubernetes 等远程存储挂载成本地文件系统,以及 UID、GID 和权限映射中的实际问题。
SFTP 客户端可以下载文件,S3 客户端可以列出对象,WebDAV 客户端可以创建 目录。但如果我只想运行下面这条命令呢?ls ~/remote
发布于 · 约 6 分钟阅读
异步 Rust 原理:从 Future 到简易运行时
从 Future、Pin、Poll、Context 和 Waker 入手,亲手实现两个简易运行时,理解异步 Rust 的执行与唤醒机制。
很多 Rust 开发者每天都会写异步代码:给函数加上 async,在调用处写下 .await,再把程序交给 Tokio。不过,这些语法背后究竟发生了什么?这篇文章不从运行时的完整工程实现讲起,而是沿着
发布于 · 约 9 分钟阅读
用 Leaktracer 追踪 Rust 内存分配
用 GlobalAlloc 实现可嵌入 Rust 应用的内存泄漏追踪器,讲清递归防护、调用符号归因,以及它为何只适合调试。
前几天,我在一个 Rust 应用里碰到了内存问题。项目很大,进程占用的内存 不断增长,累计分配量甚至到了数百 GB,我却一直找不到泄漏来自哪里。我当然知道 valgrind、heaptrack 这类工具。不过这次我更想要一个能直接 嵌进应用、接入成本又很低的方案。既然 Rust 允许我们实现自己的分配器, 不妨从这里下手。
发布于 · 约 11 分钟阅读
Rust 结构体中该用 trait 对象还是泛型
在 Rust 结构体中存放不同 trait 实现时,比较 Box<dyn Trait>、泛型和枚举封装在条件类型、性能与库 API 上的取舍。
假设我们有一个 Greet trait,以及两种不同的实现:
发布于 · 约 5 分钟阅读




