rwf2/Rocket

Phase out async_trait macro

開放

#2,684 建立於 2023年12月30日

 (5 則留言) (6 個反應) (0 位負責人)Rust (1,645 個分叉)batch import
acceptedhelp wantedrequest

倉庫指標

星標
 (25,738 顆星)
PR 合併指標
 (30 天內沒有已合併 PR)

描述

What's missing?

Rocket currently re-exports the async_trait crate for use with its Fairing (and possibly others). As of rust 1.75.0 this is no longer needed, therefore it would be nice to get rid of this dependency and use actual async functions for these traits.

This generally improves compile times, dependency count and IDE responsiveness.

Ideal Solution

For v0.6, remove async_trait (or put its usage behind a feature) and use async functions directly. This would raise the MSRV to 1.75.0.

Why can't this be implemented outside of Rocket?

This is an integral part of Rocket.

Are there workarounds usable today?

No. You bypass the need for the macro attribute by returning a Box<dyn Future<Output = T> + Send + 'a>, but this is unwieldy.

Alternative Solutions

No response

Additional Context

No response

System Checks

  • I do not believe that this feature can or should be implemented outside of Rocket.
  • I was unable to find a previous request for this feature.

貢獻者指南