Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(service): introduce hyper-specific Service #1490

Merged
merged 1 commit into from
Apr 18, 2018
Merged

Commits on Apr 18, 2018

  1. feat(service): introduce hyper-specific Service

    This introduces the `hyper::service` module, which replaces
    `tokio-service`.
    
    Since the trait is specific to hyper, its associated
    types have been adjusted. It didn't make sense to need to define
    `Service<Request=http::Request>`, since we already know the context is
    HTTP. Instead, the request and response bodies are associated types now,
    and slightly stricter bounds have been placed on `Error`.
    
    The helpers `service_fn` and `service_fn_ok` should be sufficient for
    now to ease creating `Service`s.
    
    The `NewService` trait now allows service creation to also be
    asynchronous.
    
    These traits are similar to `tower` in nature, and possibly will be
    replaced completely by it in the future. For now, hyper defining its own
    allows the traits to have better context, and prevents breaking changes
    in `tower` from affecting hyper.
    
    Closes #1461
    
    BREAKING CHANGE: The `Service` trait has changed: it has some changed
      associated types, and `call` is now bound to `&mut self`.
    
      The `NewService` trait has changed: it has some changed associated
      types, and `new_service` now returns a `Future`.
    
      `Client` no longer implements `Service` for now.
    
      `hyper::server::conn::Serve` now returns `Connecting` instead of
      `Connection`s, since `new_service` can now return a `Future`. The
      `Connecting` is a future wrapping the new service future, returning
      a `Connection` afterwards. In many cases, `Future::flatten` can be
      used.
    seanmonstar committed Apr 18, 2018
    Configuration menu
    Copy the full SHA
    2dc6202 View commit details
    Browse the repository at this point in the history