dyule / wamp-rs

Implementation of Web Application Messaging Protocol in Rust
MIT License
22 stars 7 forks source link

Future of this crate #15

Open flosse opened 6 years ago

flosse commented 6 years ago

This crates is somewhat outdated. It uses the deprecated eventual crate that was replaced by futures and tokio. There is a lot of work to be done to shift it to modern state where it can be used with e.g. tokio v0.1 (or tokio v0.2 soon). Moreover it depends directly on ws whereas a transport abstraction would be great.

@zrneely started a new project called wamp-proto but its not ready yet.

Instead of maintaining/developing two crates that do the same thing I think it makes sense to combine the efforts.

So @dyule what is your plan within the near future with wamp-rs?

dyule commented 6 years ago

Hi @flosse,

Indeed there are some old dependencies here. I seem to have started using eventual just as it was being deprecated, and did't notice.

I have a plan to migrate to futures and tokio. I think the client can be migrated separately from the server, but it will take some time, as you mention.

I am presently in the middle of some usability improvements around accessing and sending subscription and callback parameters.

I'm very willing to collaborate. @zrneely may have different goals than mine, or want to take a different approach, but I'll let him weigh in on that. Looking at his crate, the style of the client seems pretty close to the approach I'd migrate the client to.

To summarize, my plan is to keep working slowly on wamp-rs, and I'd gladly welcome contributions.

flosse commented 6 years ago

To summarize, my plan is to keep working slowly on wamp-rs, and I'd gladly welcome contributions.

I'm glad to read this :)

zrneely commented 6 years ago

Hey everyone, sorry for the late reply! I did indeed start my wamp-proto project a while ago, but it's nowhere near usable. I'm still working through some of the design decisions - it's tricky to deal with out-of-order messages with tokio/futures (especially since this is my first tokio project) :)

Unfortunately I haven't worked on it in a while, although I'd love to be more active with it and/or collaborate in some form, although again I'm not quite sure how that would work.

dyule commented 6 years ago

Hey @zrneely, my thought for collaboration is this: basically the entire client for wamp-rs is in a single file. I believe, from reading your code, that it could be wholesale replaced by the client code that you are writing, with only some small changes. Basically, I think if you used my Value instead of TransportValue and my Message enum in place of your Message trait, your library would be compatible with mine, and therefore gain the entire router component alongside the testing and examples I've already done. If you'd be interested (and I understand if you aren't), I can make you a collaborator on this repository. You can develop the client on a branch until it's ready, then we'll bump up the version number and replace my client library with yours.