Skip to contents

rho.http.httr2 implements the rho.http client interface in compute workers. Complete requests use httr2. Streaming requests use curl’s native multi event loop because httr2’s public connection API is a pull interface rather than an event driver.

The worker captures the final response head before relaying the first raw body chunk over a private localhost NNG pair socket. The socket provides backpressure; closing or cancelling the Rho stream cancels the worker. The calling R event loop does not parse HTTP or wait for network I/O.

library(rho.http.httr2)

client <- rho_httr2_http_client()
S7::S7_inherits(client, rho.http::RhoHttpClient)
#> [1] TRUE
s7contract::implements(client, rho.http::HttpClient)
#> [1] TRUE
S7::S7_inherits(
  rho.http::rho_http_open_execution(client),
  rho.http::RhoHttpWorkerOpen
)
#> [1] TRUE
rho.http::rho_http_client_close(client)

Providers receive only the HttpClient contract. Selecting this adapter does not change request translation, SSE decoding, or normalized provider events.

See the rho.http.httr2 reference and the shared rho.http contract.