[250108] Docusaurus 3.7 发布,兼容 React 19 | Axum 0.8.0 发布

212 阅读4分钟

Docusaurus 3.7 发布,兼容 React 19

近日,Docusaurus 3.7 正式发布!此版本最重要的更新是 Docusaurus 现在兼容 React 19。升级过程应该很简单,因为我们的发布流程遵循语义化版本控制,次要版本不包含任何破坏性更改。

主要更新亮点:

  • React 19 支持:
    Docusaurus 3.7 现已支持 React 19,Docusaurus 网站本身也已运行在 React 19 上。所有新初始化的站点默认都将使用 React 19,React 19 也将成为 Docusaurus v4 的最低要求版本 。 虽然 React 18 仍然受支持,但现有的 Docusaurus 站点可以选择继续使用 React 18 或升级到 React 19。 建议开发者根据自身情况选择是否立即升级,升级到 React 19 可以为 Docusaurus v4 做好准备。

  • 可配置的 SVGR 插件:
    Docusaurus 内置了对 SVGR 的支持,允许您将 SVG 文件作为 React 组件导入和使用。在新版本中,我们提取了一个新的 @docusaurus/plugin-svgr 插件,您可以根据自己的需求进行配置,特别是可以自定义 SVGR 选项和 SVG 优化器选项。该插件默认包含在 classic 预设中。

其他更新:

  • 博客作者现在拥有 bluesky、mastodon、threads、twitch、youtube 和 instagram 等社交平台的内置图标。
  • 博客现在支持 frontMatter.sidebar_label
  • @docusaurus/remark-plugin-npm2yarn 现在支持 Bun 转换。
  • 将 Algolia DocSearch 升级到 algoliasearch v5。
  • Docusaurus Faster 默认开启 Rspack 增量模式。
  • 改进了荷兰语和韩语主题翻译。

更完整的更改列表请查看 3.7.0 更新日志

来源:
docusaurus.io/blog/releas…

Axum 0.8.0 发布

🎉 axum 0.8.0 版本于近日正式发布!
axum 是一个基于 tokiotowerhyper 构建的,符合人体工程学且模块化的 Web 框架。
本次发布还包括 axum-coreaxum-extraaxum-macros 的新主要版本。

以下是本次发布中一些最值得关注的更新:

1. 路径参数语法变更

路径参数语法已从 /:single/*many 更改为 /{single}/{*many}

做出此更改的原因有很多,但最重要的是旧语法不允许使用以 :* 字符开头的路由定义。

新语法随我们升级到 matchit 0.8 而引入。它与 format!() 宏的语法类似,也是 OpenAPI 描述中使用的语法。转义使用双大括号完成,因此如果您想匹配文字 {} 字 符,可以通过编写 {{}} 来实现。

该项更改对几乎所有 axum 用户来说都是一个重大更改,但做出此更改比在更多用户依赖旧语法时再进行更改要好。迁移路径也应该相对简单,因此希望此更改不会给您带来太多麻烦。

用户可以在相应的 Pull Request 中找到更多信息和迁移示例。

2. Option<T> 作为提取器

Option<T> 作为提取器的使用方式已更改。以前,来自 T 提取器的任何拒绝都会被忽略并转换为 None

现在,Option<T> 作为提取器要求 T 实现新的 trait OptionalFromRequestParts(或 OptionalFromRequest)。

这使得处理来自 T 提取器的拒绝并将它们转换为错误响应成为可能,同时仍然允许提取器是可选的。

假设用户有一个 AuthenticatedUser 提取器,它要求请求中存在有效令牌,但在某些情况下身份验证是可选的。用户现在可以使用 Option<AuthenticatedUser> 作为提取器,而不会失去在令牌无效或数据库连接失败时返回错误响应的能力。

3. 移除 #[async_trait]

2023 年末,Rust 团队使得在 trait 中使用 impl Future<Output = _> 成为可能。此功能称为 trait 中的返回位置 impl Trait ,这意味着用户不再需要 #[async_trait] 宏来在 trait 中定义异步方法。

此更改主要影响 FromRequestPartsFromRequest trait,因为它们使用异步方法。如果有实现这些 trait 的自定义提取器的需求,则需要从中删除 #[async_trait] 注解。

来源:
tokio.rs/blog/2025-0…




更多内容请查阅 : blog-250108


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法