Thanks for your interest and enthousiasm.
When I started working on the current implementation, there was no such
thing as future-rs or tokio but if you dare to have a look at the mess
named "TODO.md", you'll see a mention in the 'vision' section. I'm
convinced that having the async story based on future-rs is almost
mandatory but I'm wondering how much it could fit in the exisiting design.
Anyway I expect it to require a bit of upfront thinking, which I have no
time for at the moment. But that definitely looks like a highly interesting
topic.
Regarding the design and threading model I really need to write down
something. In short : all IO happens in a single thread (reactor pattern),
the user threads send commands to the event loop via a mio channel and do a
blocking read on a regular rust channel, the event loop notifies completion
of the operation via this channel.
It's a bit early for benchmarks, I'd rather focus on correctness for the
moment, teach myself how to write a meaningful benchmark, and then only
write it to publish its results.
Regards,
Benoît
Le mar. 22 nov. 2016 09:21, Dirkjan Ochtman <dirkjan@xxxxxxxxxx> a écrit :
On Mon, Nov 21, 2016 at 11:11 PM, Benoit Labaere
<benoit.labaere@xxxxxxxxx> wrote:
Scaproust v0.2.0 has just been released on crates.io.
Scaproust is a 100% Rust implementation of Nanomsg.
It looks really awesome!
I was wondering, have you investigated working with futures/Tokio? I
looked at the design document in the source, but it's mostly about the
API. I would be interested in hearing about your choices of internals,
like threading model. Also curious if you've done any benchmarks.
Cheers,
Dirkjan