Unlike the first try, this does not rely on mutually exclusive feature flags. Both runtime-async-std and runtime-tokio features can be enabled at the same time. The actual runtime used is chosen by the user when creating the endpoint.
This does not touch the synchronization primitives (still uses channels etc. from tokio, even when running under async-std), and thus keeps tokio as hard-coded dependency.
To-Do:
[x] Tokio socket read/write paths needs to go via the AsyncFdReadyGuard again, otherwise it breaks
[x] Fix windows / !unix compilation
[x] Deal with lint errors that are not fixed by cargo fmt (" error: very complex type used. Consider factoring parts into type definitions")
Unlike the first try, this does not rely on mutually exclusive feature flags. Both runtime-async-std and runtime-tokio features can be enabled at the same time. The actual runtime used is chosen by the user when creating the endpoint.
This does not touch the synchronization primitives (still uses channels etc. from tokio, even when running under async-std), and thus keeps tokio as hard-coded dependency.
To-Do:
cargo fmt
(" error: very complex type used. Consider factoring parts intotype
definitions")