-
Notifications
You must be signed in to change notification settings - Fork 179
Open
Description
As of the time of writing (updated 2024-01-14), the current MSRV for every crate in the smol-rs organization is as follows:
| Repository Name | MSRV |
|---|---|
async-broadcast |
N/A |
async-channel |
1.61 |
async-compat |
N/A |
async-dup |
1.59 |
async-executor |
1.60 |
async-fs |
1.63 |
async-io |
1.63 |
async-lock |
1.60 |
async-net |
1.63 |
async-process |
1.63 |
async-rustls |
1.61 |
async-signal |
1.63 |
async-task |
1.57 |
atomic-waker |
1.36 |
blocking |
1.61 |
cache-padded |
1.31 |
concurrent-queue |
1.61 |
easy-parallel |
1.63 |
event-listener |
1.61 |
event-listener-strategy |
1.60 |
fastrand |
1.36 |
fastrand-contrib |
1.43 |
futures-lite |
1.61 |
nb-connect |
N/A |
parking |
1.51 |
piper |
1.36 |
polling |
1.63 |
smol |
1.63 |
smol-macros |
1.63 |
vec-arena |
N/A |
waker-fn |
1.51 |
The lowest MSRV here is 1.36 (aside from cache-padded, which we are planning on deprecating, see smol-rs/cache-padded#7). As a whole, the policy is usually to not bump the MSRV past the current Rust version used by Debian Stable (currenly 1.63), but once Debian Stable upgrades to a new Rust version, or a bump in an important crate (such as libc) happens, we will upgrade to a newer Rust version. This issue keeps track of features that may be useful to smol, but cannot be used yet because we don't have the required Rust version.
- 1.64
- We may want to implement
IntoFutureon certain structures (likeasync_process::Child). futures-litemay want to re-export the newly stableready!()andpoll_fnitems. As before, this would be a breaking change.
- We may want to implement
- 1.65
- Stable
backtracemay allow us to add backtraces to some of our futures. - GATs can be used to implement
event_listener_strategy::Strategyin a sounder way. (GAT nature ofStrategy::Futureevent-listener-strategy#8)
- Stable
- 1.66
- The
std::os::fdmodule could be used to replace parts ofstd::os::unix::ioin a way that helps support WASI.
- The
- 1.67
must_usecan now be used successfully onasync fn.
- 1.68
- The
pin!macro could be used to reimplement thepinmacro infutures-litewithout unsafe code. This meansfutures-litecould not contain any unsafe code. - We can use the constant
VecDeque::newto avoid usingOnceCellinblocking. (Remove the dependency on async-lock blocking#59)
- The
- Nightly
- Async functions in traits will likely cause the entire async ecosystem to be revamped, we should look out for potentially breaking bumps in
futures-liteorasync-io. AsyncIteratormay replaceStreaminfutures.- Custom allocators would be nice to use for several instances of allocation. See Custom allocators async-task#24 and Support Custom Allocator of Channel async-channel#110
- Once
ReadBufis supported, we can use that inpiperto avoid needing to initialize/zero out parts of the pipe.- I consider this to be a blocker for
piperv1.0.
- I consider this to be a blocker for
- Async functions in traits will likely cause the entire async ecosystem to be revamped, we should look out for potentially breaking bumps in
(Feel free to add any that I missed)
taiki-e, goldwind-ting and emmiegit
Metadata
Metadata
Assignees
Labels
No labels