-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
D0-easyCan be fixed primarily by duplicating and adapting code by an intermediate coder.Can be fixed primarily by duplicating and adapting code by an intermediate coder.T13-deprecationThe current issue/pr is, or should be, part of a deprecation process.The current issue/pr is, or should be, part of a deprecation process.dependenciesPull requests that update a dependency filePull requests that update a dependency file
Description
async-std has been deprecated as of March 2025, with its maintainers recommending migration to smol.
See
- https://github.com/async-rs/async-std/releases/tag/v1.13.1,
- https://crates.io/crates/async-std,
- https://lib.rs/crates/async-std
Since tokio is already a workspace dependency, migrating to it is an option.
Current usage
In the Polkadot SDK workspace, the following 7 crates depend on async-std:
- equivocation-detector
- finality-relay
- messages-relay
- parachains-relay
- relay-substrate-client
- relay-utils
- substrate-relay-helper
$ cargo tree -i async-std --workspace
async-std v1.12.0
├── equivocation-detector v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/equivocation)
│ └── substrate-relay-helper v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/lib-substrate-relay)
├── finality-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/finality)
│ ├── equivocation-detector v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/equivocation) (*)
│ ├── messages-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/messages)
│ │ └── substrate-relay-helper v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/lib-substrate-relay)
│ ├── relay-substrate-client v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/client-substrate)
│ │ ├── parachains-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/parachains)
│ │ │ └── substrate-relay-helper v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/lib-substrate-relay)
│ │ └── substrate-relay-helper v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/lib-substrate-relay)
│ │ [dev-dependencies]
│ │ ├── parachains-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/parachains) (*)
│ │ └── substrate-relay-helper v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/lib-substrate-relay)
│ └── substrate-relay-helper v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/lib-substrate-relay)
├── messages-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/messages) (*)
├── parachains-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/parachains) (*)
├── relay-substrate-client v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/client-substrate) (*)
├── relay-utils v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/utils)
│ ├── equivocation-detector v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/equivocation) (*)
│ ├── finality-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/finality) (*)
│ ├── messages-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/messages) (*)
│ ├── parachains-relay v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/parachains) (*)
│ ├── relay-substrate-client v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/client-substrate) (*)
│ └── substrate-relay-helper v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/lib-substrate-relay)
└── substrate-relay-helper v0.1.0 (/home/ubuntu/Work/polkadot-sdk/bridges/relays/lib-substrate-relay)
Migration notes
The codebase only uses a few primitives from async-std, all of which have direct equivalents in tokio:
async-std |
tokio/std replacement |
|---|---|
async_std::sync::Arc |
std::sync::Arc |
async_std::sync::RwLock |
tokio::sync::RwLock |
async_std::sync::Mutex |
tokio::sync::Mutex |
async_std::task::sleep |
tokio::time::sleep |
async_std::task::block_on |
tokio::runtime::Runtime::new().unwrap().block_on |
#[async_std::test] |
#[tokio::test] |
Example migration from parachains-relay:
- use async_std::sync::{Arc, Mutex};
+ use std::sync::Arc;
+ use tokio::sync::Mutex;
- async_std::task::sleep(min_block_interval).fuse()
+ tokio::time::sleep(min_block_interval).fuse()
- #[async_std::test]
+ #[tokio::test]Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
D0-easyCan be fixed primarily by duplicating and adapting code by an intermediate coder.Can be fixed primarily by duplicating and adapting code by an intermediate coder.T13-deprecationThe current issue/pr is, or should be, part of a deprecation process.The current issue/pr is, or should be, part of a deprecation process.dependenciesPull requests that update a dependency filePull requests that update a dependency file