webfakes now supports HTTPS (#110).
The cleanup of a new_app_process() (and thus
local_app_process()) is now faster. Instead of sending an
interrupt first and waiting for the subprocess to quite, it is killed
instantly.
decode_url. If set to
FALSE, then the web server will not URL-decode the URL
(#106).No changes.
New git_app() app to fake a git HTTP server. See the
webfakes test cases for examples.
New mw_cgi() middleware to call CGI scripts. See the
new git_app() for an example.
tmpl_glue() now works correctly on platforms with an
issue in readChar(..., useBytes = TRUE), e.g. on macOS 14.x
Sonoma: https://bugs.r-project.org/show_bug.cgi?id=18605.The httpbin app now implements the /brotli,
/deflate, /digest-auth
/forms/post, /hidden-basic-auth,
/range/:n, /stream/:n, /cache and
/cache/:value endpoints. With these, it implements all
endpoint of the original Python httpbin app (#3).
New middleware mw_cookie_parser() to parse a
Cookie header. Relatedly, new
response$add_cookie() and
response$clear_cookie() methods to add a cookie to a
response and to add a header that clears a cookie (#2).
Parsing query parametes without a value now does not fail.
New utility function http_time_stamp() to format a
time stamp for HTTP.
The httpbin app now implements the endpoints related to cookies (#3).
The httpbin app now sends the Date header in the
correct format.
The offset parameter is now optional in the
/links endpoint of the httpbin app.
mw_etag() now does not add an ETag
header to the response, if there is one already. (The comparision is
case sensitive.)
New middleware: mw_range_parser() to parse
Range headers.
response$send_file() now handles
root = "/" and absolute paths better on Windows.
new_app_process() and
local_app_process() are now faster, because the app object
they need to copy to the subprocess is smaller.
mw_etag() now handles the If-None-Match
header properly, and sets the status code of the response to 304, and
removes the response body.First release on CRAN