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

Generic helpers for HTTP/2 async pipelines #401

Merged
merged 18 commits into from
Jul 3, 2023

Commits on Jun 23, 2023

  1. Store HTTP/2 inbound streams as async sequence

    Motivation:
    
    In preparation for exposing APIs which surface HTTP/2 connections and
    streams using structured concurrency this PR introduces a store for
    inbound HTTP/2 streams.
    
    Modifications:
    
    Define types and methods for storing generic types which wrap `Channels`
    corresponding to inbound HTTP/2 streams in an async sequence.
    
    Result:
    
    The new types are not yet exposed, this work introduces part of the
    framework for future functionality.
    rnro committed Jun 23, 2023
    Configuration menu
    Copy the full SHA
    e1274f2 View commit details
    Browse the repository at this point in the history
  2. Expose (as spi) helpers for H2 async pipelines

    Motivation:
    
    This PR is the first step in exposing APIs which surface HTTP/2 connections and
    streams using structured concurrency. This PR exposes the most abstract
    spelling of this concept, assuming no particular types/forms for the
    types involved in the stream channel types.
    
    Modifications:
    
    * Store a generic `streamInitializer` on the common inbound initializer
      which is used to initialize inbound streams before yielding them to
    the continuation of streams.
    * Expose pipeline configuration functions which assume HTTP/2 but
      nothing else about sream channel types.
    
    Result:
    
    Adopters of the new SPI should be able to create outbound and deal with
    inbound HTTP/2 stream channels using async streams.
    
    Outside of SPI there should be no changes.
    rnro committed Jun 23, 2023
    Configuration menu
    Copy the full SHA
    d1c66d4 View commit details
    Browse the repository at this point in the history
  3. additional multiplexer changes

    * Finish stream channel sequence continuation
    * Provide internal functions for creating streams without configuring
      them. Configuring leads to activation so it can be helpful to allow
    that step to be performed manually once any provided initialization
    closures have beenn executed.
    rnro committed Jun 23, 2023
    Configuration menu
    Copy the full SHA
    bfcb51c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    64f140a View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2023

  1. review comments

    rnro committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    fe010aa View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5ba8e7e View commit details
    Browse the repository at this point in the history
  3. review comments

    rnro committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    e9c7f8e View commit details
    Browse the repository at this point in the history
  4. make some return types explicit

    rnro committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    43ad1cb View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2023

  1. Configuration menu
    Copy the full SHA
    30cc72e View commit details
    Browse the repository at this point in the history
  2. reduce alloc counts

    rnro committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    dd043f2 View commit details
    Browse the repository at this point in the history
  3. minor fixes

    rnro committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    3a65355 View commit details
    Browse the repository at this point in the history
  4. review comments

    rnro committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    319bf08 View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2023

  1. Configuration menu
    Copy the full SHA
    c56e639 View commit details
    Browse the repository at this point in the history
  2. more review comments

    rnro committed Jun 29, 2023
    Configuration menu
    Copy the full SHA
    400a8e6 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2023

  1. test fixups

    rnro committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    43676e8 View commit details
    Browse the repository at this point in the history
  2. minor renaming/formatting

    rnro committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    3874bee View commit details
    Browse the repository at this point in the history
  3. review comments

    rnro committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    4dfae63 View commit details
    Browse the repository at this point in the history
  4. comments - test handler changes

    rnro committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    3818fda View commit details
    Browse the repository at this point in the history