sapling/eden/mononoke/tests
Liubov Dmitrieva dd4c17e918 introduce h2 support
Summary:
Introduce **h2** support into mononoke server.

Remove alpn crate that repeats the standard "select_next_proto" method

Server now offers the following protocols: hgcli, h2, http/1.1 in this order in protocol negotiation.

We will select the first protocol supported by the server which is also supported by the client.

This will add h2 support server side but won't change protocols currently used (because h2 is not offered client side right now, while http/1.1 is explicitly set).

We then later will switch **only** Eden Api Traffic to H2 by enabling the following config client side via slow rollout:

```
[edenapi]
http-version=2
```

We might need to tune some settings on proxygen side before that.

Wireproto traffic will continue to be obliged to set http/1.1 client side explicitly, which is totally fine because it needs web socket upgrade.

###  At a high level, HTTP/2:

* is binary, instead of textual
* is fully multiplexed, instead of ordered and blocking
can therefore use one connection for parallelism
* uses header compression to reduce overhead
* allows servers to “push” responses proactively into client caches

Reviewed By: mzr

Differential Revision: D44540283

fbshipit-source-id: 560d80d68d5d364adee122881d12cf61ba9f1695
2023-04-05 03:53:22 -07:00
..
fixtures (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
integration introduce h2 support 2023-04-05 03:53:22 -07:00
utils (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00