前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】2022-08-30 Diesel 2.0.0 发布

【Rust日报】2022-08-30 Diesel 2.0.0 发布

作者头像
MikeLoveRust
发布2022-11-28 14:59:13
6570
发布2022-11-28 14:59:13
举报
文章被收录于专栏:Rust语言学习交流

Diesel 2.0.0 发布

Diesel 是一个安全的、可扩展的 ORM 和 Rust 查询构建器。其借助 Rust 的语言特性,在不牺牲性能的前提下,消除了运行时错误。

其支持的数据库有:

  • PostgreSQL
  • MySQL
  • SQLite

本版本是超过 135 人历时 3 年多开发的结果。自上一个 RC 版本以来,合并了以下细微更改:

  • 从 v0.3 开始支持日期/时间类型
  • 对 rustc 生成的错误消息的一些可选的修正
  • Selectable 这个 derive 的一些改进
  • 将 extensive join 的编译时间减少了约 4 倍的修复

详细内容请参考 CHANGELOG

Fearless cargo update

Fearless Development 是 Rust 的一个关键词,"If it compiles, it works"。

但是在 Rust 的整套开发流程中,有一个环节并不是让人 fearless,也就是 cargo update,即升级项目的依赖。

绝大多数情况下,cargo update 都没有什么后果,伴随着依赖的优化,通常还能带来一定的性能提升。但是在某些场景下,由于 API 的变化(函数签名,auto-trait 等),cargo update 会造成整个项目编译不通过的情况,此时要么选择回退版本,要么选择拥抱新的 breaking change ...... 无论如何都很棘手。

但是,借助 cargo-semver-check 这个工具,可以提早发现 cargo update 潜在的依赖问题,从而避免上述一系列问题,提升开发体验。感兴趣的可以参考其 Github 主页 和 原文。

使用 Rust 重写 blog 构建工具

Jonas Hietala 九年来,一直用 Hakyll 作为静态站点的生成工具,如今,他终于下定决心,打算转向自己用 Rust 亲手编写的自定义站点生成器,并解决以下几点问题:

  1. 越来越慢的速度。Hakyll 的编译速度实再不能令人满意;
  2. 外部依赖项。虽然站点生成器本身是用 Haskell 编写的,但除了众多 Haskell 库之外,其中还包含其他依赖项,管理和更新十分烦人,无法专心于博客内容;
  3. 设置问题。跟大量依赖项相关,作者的博客网站有时候会宕机,必须得花时间调试和修复。

作者原先很担心,例如模板引擎、高亮显示的功能无法在 Rust 中实现,但事实证明,每一个功能都有理想的工具辅助实现:

  • 用 pulldown-cmark 来解析 Markdown;
  • 用 syntect 实现语法高亮,能够支持 Sublime Text 语法;
  • 用 yaml-front-matter 解析帖子中的元数据;
  • 用 grass 作为纯 Rust 中的 Sass 编译器;
  • 用 axum 创建负责在本地托管站点的静态文件服务器;
  • 用 hotwatch 监控文件变更,这样就能在文件内容变化时更新页面;
  • 用 scraper 解析生成的 html。用于某些测试和特定转换;
  • 用 rust-s3 将生成的站点上传至 S3 存储端。

最终作者实现了一个不错的 blog 工具,可以参考 Github 仓库地址,项目的实现细节可以参考原文介绍

-- From 日报小组 RustPlumber

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Diesel 2.0.0 发布
  • Fearless cargo update
  • 使用 Rust 重写 blog 构建工具
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档