summaryrefslogtreecommitdiff
path: root/ext/http/lib.rs
AgeCommit message (Collapse)Author
2022-04-25fix(ext/http): truncate read bytes when streaming bodies (#14389)Divy Srivastava
stream shutdown wasn't happening correctly (moved it to call op_http_shutdown) & extra zeroed bytes were being sent for when body length not a multiple of 64*1024
2022-04-25perf(ext/http): fast path for uncompressed bodies (#14366)Divy Srivastava
2022-04-24perf(ext/http): faster is_content_compressible (#14383)Aaron O'Mullan
Cleanup + benches
2022-04-24perf(serde_v8): zero-copy StringOrBuffer (#14381)Aaron O'Mullan
2022-04-22Reland "perf(http): optimize ReadableStreams backed by a resource" (#14346)Divy Srivastava
2022-04-21Reland "feat(ext/http): stream auto resp body compression" (#14345)Divy Srivastava
2022-04-21Revert various PRs related to "ext/http" (#14339)Bartek Iwańczuk
* Revert "feat(ext/http): stream auto resp body compression (#14325)" * Revert "core: introduce `resource.read_return` (#14331)" * Revert "perf(http): optimize `ReadableStream`s backed by a resource (#14284)"
2022-04-20feat(ext/http): stream auto resp body compression (#14325)Luca Casonato
This commit adds support for auto response body compression for streaming bodies.
2022-04-20core: introduce `resource.read_return` (#14331)Divy Srivastava
2022-04-20perf(http): optimize `ReadableStream`s backed by a resource (#14284)Divy Srivastava
2022-04-04chore(ext/http): custom arity (#14200)Divy Srivastava
2022-04-02experiment(serde_v8): derive_more enabled opaque wrappers (#14096)Aaron O'Mullan
2022-03-21perf(http): avoid per header alloc (#14051)Aaron O'Mullan
2022-03-16feat(unstable): Add Deno.upgradeHttp API (#13618)Bert Belder
This commit adds "Deno.upgradeHttp" API, which allows to "hijack" connection and switch protocols, to eg. implement WebSocket required for Node compat. Co-authored-by: crowlkats <crowlkats@toaxl.com> Co-authored-by: Ryan Dahl <ry@tinyclouds.org> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-03-16feat(ops): optional OpState (#13954)Aaron O'Mullan
2022-03-14feat(ops): custom arity (#13949)Aaron O'Mullan
Also cleanup & drop ignored wildcard op-args
2022-03-14feat(core): codegen ops (#13861)Divy Srivastava
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2022-03-07fix(ext/http): drop content-length header on compression (#13866)Satya Rohith
2022-03-04feat(ext/http): auto-compression of fixed response bodies (#13769)Kitson Kelly
Co-authored-by: Ryan Dahl <ry@tinyclouds.org> Co-authored-by: Satya Rohith <me@satyarohith.com> Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2022-02-16feat: deno vendor (#13670)David Sherret
2022-02-16feat(ext/http): add support for unix domain sockets (#13628)ylxdzsw
2022-01-07chore: update copyright to 2022 (#13306)Ryan Dahl
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2021-11-10refactor(ext/http): rewrite hyper integration and fix bug (#12732)Bert Belder
Fixes: #12193 Fixes: #12251 Closes: #12714
2021-11-09Revert "refactor(ext/http): rewrite hyper integration and fix bug (#12332)" ↵Luca Casonato
(#12704) This reverts commit 5b1e537446454f6332de44adbeb6a15ff072c2fa.
2021-11-08refactor(ext/http): rewrite hyper integration and fix bug (#12332)Bert Belder
Fixes: #12193
2021-10-26fix(ext/http): allow multiple values in upgrade header for websocket (#12551)Leo K
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2021-10-26perf(http): encode string bodies in op-layer (#12451)Aaron O'Mullan
Using serde_v8's StringOrBuffer
2021-10-17docs(ext/http): fix typo in http/lib.rs (#12466)Ikko Ashimine
2021-10-11fix(http): don't expose body on GET/HEAD requests (#12260)Luca Casonato
GET/HEAD requests can't have bodies according to `fetch` spec. This commit changes the HTTP server to hide request bodies for requests with GET or HEAD methods.
2021-10-05chore: various op cleanup (#12329)Leo K
2021-09-26fix(ext/http): include port number in h2 urls (#12181)Ben Noordhuis
2021-09-25fix(http): panic when responding to a closed conn (#12216)Aaron O'Mullan
Our oneshot receiver in `HyperService::call` would unwrap and panic, the `.await` on the oneshot receiver happens when the sender is dropped. The sender is dropped in `op_http_response` because: 1. We take `ResponseSenderResource` 2. Then get `ConnResource` and early exit on failure (conn already closed) 3. The taken sender then gets dropped in this early exit before any response is sent over the channel Fallbacking to returning a dummy response to hyper seems to be a fine quickfix
2021-09-25fix(ext/http): fortify "is websocket?" check (#12179)Ben Noordhuis
Check for expected headers more rigorously and check that it's a HTTP/1.1 GET request. The logic mirrors what Deno Deploy and the tungstenite crate do. The presence of "Sec-Websocket-Version: 13" is now also enforced. I don't expect that to break anything: conforming clients already send it and tungstenite can't talk to older clients anyway. The new code is more efficient due to heap-allocating less and aligns more closely with the checks in ext/http/01_http.js now.
2021-08-31fix: move unstable declarations to deno.unstable (#11876)Luca Casonato
2021-08-16test(ext/http): add test for incomplete HTTP message and fix resource leak ↵Bartek Iwańczuk
(#11717) This commit adds a test case for "Http: connection closed before message completed" error as well as fixing an edge with resource leak when the error is raised.
2021-08-15refactor(ops): return BadResource errors in ResourceTable calls (#11710)Aaron O'Mullan
* refactor(ops): return BadResource errors in ResourceTable calls Instead of relying on callers to map Options to Results via `.ok_or_else(bad_resource_id)` at over 176 different call sites ...
2021-08-15perf(ext/http): faster req_url string assembly (#11711)Aaron O'Mullan
This stood out on a flamegraph, it took up ~1% of a profiled loadtest of `cli/bench/deno_http_native.js`
2021-08-14cleanup(ext/http): simplify cookie header handling (#11704)Aaron O'Mullan
cleanup(ext/http): simplify cookie header handling Use `Vec::join` instead of essentially reimplementing it. There should be no meaningful performance delta
2021-08-14cleanup(ext/http): simplify op_http_request_next (#11691)Aaron O'Mullan
* cleanup(ext/http): simplify op_http_request_next Keep op_http_request_next's high-level logic simple, factor out NextRequestResponse building to prepare_next_request() for improved readability & maintainability * cleanup(ext/http): break prepare_next_request() into meaningful sub-funcs
2021-08-13fix(http/ws): support multiple options in connection header (#11675)Leo K
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-13fix(ext/http): remove unwrap() when HTTP conn errors (#11674)Bartek Iwańczuk
2021-08-11Rename extensions/ directory to ext/ (#11643)Ryan Dahl