Investigate decoupling from tokio
Closed this issue · 2 comments
Instead of the costly FS backend abstraction that doesn't seem to be bringing much of a benefit due to tokio-uring
being de facto abandoned, it could be worthwhile to introduce a Runtime trait that would have:
- Filesystem functionality
- Timers (for timeouts)
- Join set (!!, most used currently from tokio)
For everything else, it'd make sense to use agnostic crates outside of tokio, for example crossbeam-channel
or async-channel
for mpsc in the metrics extension.
Main priority for 0.6! Would also entail a ton of breaking changes, naturally
Massive refactor/churn/rewrite number 5 or 6 for fctools that breaks everything, which is mainly why I'm planning to keep 0.x for quite a while still.
Doing this just proves once again how much of an absolute unmitigated disaster the async rust executor situation is, honestly...