< 返回版块

Yuan YQ 发表于 2025-02-19 15:26

Tags:eserde,cot,rust-for-linux

eserde : 更友好的序列化/反序列化框架

众所周知,serde 是 Rust 生态中的一个非常强大的序列化/反序列化框架。今天介绍的这个 eserde 是由 Mainmatter 开发的,它在 serde 之上构建,旨在提供更好的错误处理。serde 在反序列化的时候,遇到第一个错误就会停止解析,而 eserde 能够一次性报告多个错误,可以大大节省调试时间,减少 API 交互次数。

下面是一个示例:

#[derive(Debug, eserde::Deserialize)]
//              ^^^^^^^^^^^^^^^^^^^
//          Using `eserde::Deserialize`
//        instead of `serde::Deserialize`!
struct Package {
    version: Version,
    source: String,
}

#[derive(Debug, eserde::Deserialize)]
struct Version {
    major: u32,
    minor: u32,
    patch: u32,
}

let payload = r#"
    {
        "version": {
            "major": 1,
            "minor": "2"
        },
        "source": null
    }"#;
let errors = eserde::json::from_str::<Package>(&payload).unwrap_err();
//           ^^^^^^^^^^^^
//      We're not using `serde_json` directly here!
assert_eq!(
    errors.to_string(),
    r#"Something went wrong during deserialization:
- version.minor: invalid type: string "2", expected u32 at line 5 column 24
- version: missing field `patch`
- source: invalid type: null, expected a string at line 7 column 22
"#
);

可以看出,eserde 一次性给出了 3 个错误消息,分别是:属性缺失、属性值类型错误、属性值缺失。这个体验确实是很好的。

原文地址:https://mainmatter.com/blog/2025/02/13/eserde/

Cot: “懒人”友好的 Web 框架

Cot 是一个类似 Django 的“懒人”友好的 Rust Web 框架,内置了大量功能,追求开箱即用的开发体验。项目作者认为目前 Rust 生态中缺乏易用且强大的 Web 框架,所以基于axum、sea-query、tower、serde等项目构建了这个项目。

主要特性:

  • 内置身份验证
  • 会话管理
  • 管理面板
  • 模板系统
  • 自带 ORM,支持自动生成数据库迁移(这是其他 ORM 如 SeaORM 和 Diesel 所不具备的)

注意:还处于早期开发阶段,尚未达到生产可用水平。但是项目团队计划通过频繁更新快速完善功能

官方网站:https://cot.rs/

Github 仓库:https://github.com/cot-rs/cot

Miguel Ojeda 在 FOSDEM 2025 上关于 Rust-for-Linux 项目的演讲

Miguel Ojeda 是 Rust-for-Linux 项目的维护者,他在 FOSDEM 2025 发表了关于该项目的演讲。简单总结如下:

  1. 项目背景:

    • Rust-for-Linux 项目旨在为 Linux 内核添加 Rust 语言支持
    • 长期目标是让内核维护者能够自由选择使用C或Rust
    • 项目的核心优势在于提供更多的代码安全性保证和开发信心
  2. 历史发展:

    • 2013 年出现最早的概念验证 rust.ko

    • 2019 年创建 Rust-for-Linux GitHub 组织

    • 2022 年 Rust 支持正式合并到 Linux 6.1 LTS 版本

  3. 未来展望:

    • 多位内核开发者对项目持积极态度

    • 2025 年可能会在 GPU 驱动方面有重大突破

    • 主要挑战包括:

      • Rust 语言的学习难度
      • GCC 支持的需求
      • 代码审查的复杂性
  4. 社区反应:

    • 大多数开发者认为 Rust 融入 Linux 内核是不可避免的趋势

    • 部分开发者担心学习曲线陡峭

    • 一些开发者对Rust编程体验非常认可,认为能减少常见 bug

原文地址:https://lwn.net/SubscriberLink/1007921/9020dbb12585d48f/

--

From 日报小组 Yuan YQ

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页