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

use Hyper as a HTTP backend #6110

Closed
wants to merge 10 commits into from
Closed

use Hyper as a HTTP backend #6110

wants to merge 10 commits into from

Conversation

bagder
Copy link
Member

@bagder bagder commented Oct 21, 2020

Status: https://github.com/curl/curl/wiki/Hyper

Made a draft PR early to make sure this work doesn't break the "normal" builds. expect rebases!

  • make configure find Hyper
  • initial code that creates and issues a request with Hyper
  • use the correct method, path and default headers
  • docs explaining how to build with Hyper
  • receive/store response correctly
  • debug callback for received content
  • pass received data and headers to correct callbacks
  • no memory-leaks
  • works with HTTPS (if done with HTTP/1)
  • tell Hyper to not lowercase headers
  • debug callback for sent headers
  • supports custom request headers
  • HTTP/2
  • curl -I (HEAD) works over HTTP(S) and h1/h2
  • over proxies
  • referer (-e )
  • redirects
  • cookies
  • test suite "Hyper compatible"
  • Basic auth headers
  • Basic proxy auth headers
  • simple POSTs work
  • handle POST/PUT
  • multi-part formpost
  • send custom request headers without values
  • pass on the "status reason" from the HTTP/1 status line
  • provide Hyper version in curl_version_info function
  • handle CURL_HTTP_VERSION_1_0
  • chunked-encoded h1 "upload"
  • debug callback for sent content
  • multiplexed HTTP/2
  • h2 Upgrade:
  • HTTP auth
  • pausing transfers
  • co-exist with a HTTP/3 build
  • receiving HTTP/1 trailers
  • sending HTTP/1 trailers
  • accept-encoding
  • transfer encoding

@bagder bagder added the HTTP label Oct 21, 2020
@bagder bagder force-pushed the bagder/hyper branch 9 times, most recently from ab93cd9 to 8daa302 Compare November 3, 2020 08:30
@bagder bagder force-pushed the bagder/hyper branch 3 times, most recently from 70b4c6d to 644da26 Compare November 12, 2020 14:57
@bagder bagder force-pushed the bagder/hyper branch 2 times, most recently from 7aca90c to e8d853e Compare November 16, 2020 15:22
lib/http.c Outdated Show resolved Hide resolved
lib/http.c Show resolved Hide resolved
lib/setopt.c Outdated Show resolved Hide resolved
@bagder bagder force-pushed the bagder/hyper branch 2 times, most recently from ffdfe3b to 23cb269 Compare December 8, 2020 07:49
@bagder bagder force-pushed the bagder/hyper branch 3 times, most recently from 6513c79 to 2901a45 Compare December 11, 2020 16:13
@bagder bagder marked this pull request as ready for review December 14, 2020 13:14
@bagder
Copy link
Member Author

bagder commented Dec 14, 2020

I've cleaned up the commits now in preparation for the first merge of this work. My plan with this merge is to provide a first version that users can check out and try (opt-in of course), but to not affect the default build at all.

I will then continue fixing the Hyper use further in follow-up PRs, hopefully much smaller and less disruptive.

@bagder bagder changed the title [WIP] use Hyper as a HTTP backend in curl use Hyper as a HTTP backend Dec 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging this pull request may close these issues.

3 participants