softprops / hyperlocal

🔌 ✨rustlang hyper bindings for local unix domain sockets
MIT License
229 stars 46 forks source link

get ready for hyper's 0.11 changes #6

Closed softprops closed 7 years ago

softprops commented 7 years ago

some discussion is being had over here https://github.com/hyperium/hyper/issues/126

kevincox commented 7 years ago

It appears that these changes have landed.

softprops commented 7 years ago

I've already started a local branch for this. The client was actually really easy to implement ( easier than I thought ). The server listener is proving to be more difficult. Mostly because there aren't may examples of documentation of how to customize the server's listening backend with the newer model

skinowski commented 7 years ago

Would you mind sharing the client-only changes?

softprops commented 7 years ago

Sure I'll push up a branch tonight. In the meantime I reached out to the hyper maintainers to see if I could get some insight on extending the new server model

softprops commented 7 years ago

this is what I have so far. I have the client working in an example here still working on getting the server bits line up

skinowski commented 7 years ago

Thank you, I've playing around with this code, but I'm getting errors such as:

error[E0599]: no method named `build` found for type `hyper::client::Config<uds::UnixSocketConnector, hyper::Body>` in the current scope
   --> src/collector.rs:181:7
    |
181 |                                   .build(&core.handle.as_ref().borrow().clone()))
    |                                    ^^^^^
    |
    = note: the method `build` exists but the following trait bounds were not satisfied:
            `uds::UnixSocketConnector : hyper::client::Connect`

I'm on hyper 0.11.2, and it seems like hyper::client::Connect trait needs implementation, not service for the client?

Which is interesting since Hyper::client::Connect has the following comments for Connect trait:

/// A connector creates an Io to a remote address..
///
/// This trait is not implemented directly, and only exists to make
/// the intent clearer. A connector should implement `Service` with
/// `Request=Uri` and `Response: Io` instead.
pub trait Connect: Service<Request=Uri, Error=io::Error> + 'static {
softprops commented 7 years ago

Hoping to get a chance to followup this weekend

softprops commented 7 years ago

async hyper 0.11 support is now on master. see the examples directory for an example client and server usage