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 Oct 27, 2020
@bagder bagder force-pushed the bagder/hyper branch 3 times, most recently from 70b4c6d to 644da26 Nov 6, 2020
@bagder bagder force-pushed the bagder/hyper branch 2 times, most recently from 7aca90c to e8d853e Nov 13, 2020
lib/http.c Outdated Show resolved Hide resolved
lib/http.c Show resolved Hide resolved
@bagder bagder force-pushed the bagder/hyper branch 5 times, most recently from 6f411f8 to be035c3 Nov 20, 2020
@bagder bagder force-pushed the bagder/hyper branch from 7c86c70 to e5f5ce9 Nov 30, 2020
lib/setopt.c Outdated Show resolved Hide resolved
@bagder bagder force-pushed the bagder/hyper branch 2 times, most recently from ffdfe3b to 23cb269 Dec 2, 2020
@bagder bagder force-pushed the bagder/hyper branch 3 times, most recently from 6513c79 to 2901a45 Dec 10, 2020
docs/libcurl/symbols-in-versions Outdated Show resolved Hide resolved
@bagder bagder force-pushed the bagder/hyper branch from daf0fc9 to 429b9ec Dec 14, 2020
@bagder bagder marked this pull request as ready for review Dec 14, 2020
@bagder
Copy link
Member Author

@bagder 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
@bagder bagder force-pushed the bagder/hyper branch from 1453afc to 810b30a Dec 15, 2020
bagder added 7 commits Dec 14, 2020
As the first (optional) HTTP backend alternative instead of native
... for when setopt() returns error.
@bagder bagder force-pushed the bagder/hyper branch from 810b30a to b7d2b32 Dec 17, 2020
bagder added 3 commits Dec 14, 2020
... as an alternative HTTP backend within libcurl.
@bagder bagder force-pushed the bagder/hyper branch from b7d2b32 to 0a7f9bc Dec 17, 2020
@bagder bagder closed this in c263e58 Dec 18, 2020
@bagder bagder deleted the bagder/hyper branch Dec 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants