nash-io / openlimits

A Rust high performance cryptocurrency trading API with support for multiple exchanges and language wrappers.
http://openlimits.io
BSD 2-Clause "Simplified" License
273 stars 44 forks source link

Upgrade tokio to v1.0.1 #154

Closed mankinskin closed 3 years ago

mankinskin commented 3 years ago

Tokio 1.0 was just released and upgrading to it should be a good step towards more stable dependencies. This might also solve #57

notonamap commented 3 years ago

Hey @mankinskin. just a small note that tokio 1 types currently don't implement Stream which openlimits relies upon in some parts of the code. I suggest to wait til tokio has it back in. https://docs.rs/tokio/1.0.1/tokio/stream/index.html

mankinskin commented 3 years ago

Do we know how long that is going to take? Might be easier for other crates to use openlimits when it uses a recent version of tokio. The changes required by the missing Stream implementation on UnboundedReceiver was basically just replacing .next() with .recv() and replacing .poll_next_unpin() with Pin::new(&mut $self).poll_recv() (see https://github.com/nash-io/nash-rust/pull/47).

I mean to say I think it would still be better to take the step forward and merge it. The Stream parts could easily be changed back when 1.0.1 lands.

notonamap commented 3 years ago

I don't think it will be that easy for openlimits as it uses more future-rs stream based stuff. But sure you can try if you feel like it.. I'm not a maintainer of this repo though so you might want to coordinate with someone from the Nash crew like @notdanilo

mankinskin commented 3 years ago

Hmm.. actually I just noticed I didn't depend on the updated version of nash-rust (with tokio-1.0) and there actually is some more code that requires Stream trait specifically.

Seems like you are right.