用途:为编写处理文件格式、外部进程与跨语言边界的可靠 Rust 系统提供模式与检查清单。核心原则:来自文件、子进程和外部系统的输入一律视为不可信;宁可漏报不可误报;同一输入产生同一输出;不因坏输入在用户机器上 panic;仅使用安全 Rust,不依赖 unsafe。
主要能力与主题:数据建模(Serde 模式、UniFFI、强类型、版本化 schema)、文件 I/O(原子写入、并发控制、文件监听)、进程集成(PID 校验、子进程处理、时间戳)、文本与解析(UTF-8 安全、路径规范化、状态机)、测试(往返测试、模糊测试、Clippy 检查)。
错误处理:库的公开 API 用 thiserror 按操作定义细粒度错误类型;应用内部用 anyhow 附加上下文。错误应降级功能而非崩溃,但宽松处理时需记录日志。
快速参考:静态正则用 std::sync::LazyLock(Rust 1.80+);锁覆盖完整读-改-写周期;外部输入加 #[serde(deny_unknown_fields)];截断字符串用 .chars() 或字素而非字节切片;写文件先 sync_all() 再 rename;用进程启动时间校验 PID;时间运算用 saturating_sub;提交前运行 cargo clippy -- -D warnings 与 cargo fmt。避免无上下文的 #[from]、跨无关操作的巨型错误枚举、静默忽略错误、&s[..N] 切片、假设目录迭代顺序稳定、未校验子进程输出、使用 unsafe。
该指南可预防 PID 复用导致的幽灵会话、时间戳单位不一致、UTF-8 截断 panic、并发丢失更新、断电文件损坏、元数据静默损坏、旧数据破坏新代码等问题。修改相关系统时需核对 schema/Serde、并发、健壮性与质量清单。具体参考文件与完整代码示例见原页面。