summaryrefslogtreecommitdiff
path: root/ext/http
AgeCommit message (Collapse)Author
2024-02-221.41.0 (#22524)denobot
Bumped versions for 1.41.0 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-02-15chore: forward v1.40.5 release commit to main (#22424)denobot
This is the release commit being forwarded back to main for 1.40.5 Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-02-08chore: forward v1.40.4 release commit to main (#22345)denobot
This is the release commit being forwarded back to main for 1.40.4 Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-02-05refactor(cli): Move op descriptions into Rust and prepare for op import (#22271)Matt Mastracci
This moves the op sanitizer descriptions into Rust code and prepares for eventual op import from `ext:core/ops`. We cannot import these ops from `ext:core/ops` as the testing infrastructure ops are not always present. Changes: - Op descriptions live in `cli` code and are currently accessible via an op for the older sanitizer code - `phf` dep moved to workspace root so we can use it here - `ops.op_XXX` changed to to `op_XXX` to prepare for op imports later on.
2024-02-01chore: forward v1.40.3 release commit to main (#22220)Divy Srivastava
This is the release commit being forwarded back to main for 1.40.3 Ref https://github.com/denoland/deno/pull/22219
2024-01-26refactor: migrate extensions to virtual ops module (#22135)Bartek Iwańczuk
First pass of migrating away from `Deno.core.ensureFastOps()`. A few "tricky" ones have been left for a follow up.
2024-01-26chore: upgrade deno_core (#22124)Bartek Iwańczuk
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2024-01-26chore: forward v1.40.2 commit to main (#22133)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com> Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-01-26fix(ext/http): smarter handling of Accept-Encoding (#22130)Matt Mastracci
2024-01-25chore: forward v1.40.1 commit to main (#22107)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com> Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-01-251.40.0 (#22096)denobot
Bumped versions for 1.40.0 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-01-25fix: don't use public rid accessors in internal APIs (#22091)Bartek Iwańczuk
Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-01-22feat(unstable): remove Deno.upgradeHttp API (#21856)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/21828. This API is a huge footgun. And given that "Deno.serveHttp" is a deprecated API that is discouraged to use (use "Deno.serve()" instead); it makes no sense to keep this API around. This is a step towards fully migrating to Hyper 1.
2024-01-13chore: forward v1.39.4 release commit to main (#21933)denobot
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-01-12chore: forward v1.39.3 to main (#21915)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com> Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-01-10refactor: use `core.ensureFastOps()` (#21888)Kenta Moriuchi
2024-01-09chore: upgrade deno_core to 0.244.0 (#21859)Bartek Iwańczuk
2024-01-04chore: forward v1.39.2 release commit to main (#21793)Bartek Iwańczuk
2024-01-04fix: strict type check for cross realms (#21669)Kenta Moriuchi
Deno v1.39 introduces `vm.runInNewContext`. This may cause problems when using `Object.prototype.isPrototypeOf` to check built-in types. ```js import vm from "node:vm"; const err = new Error(); const crossErr = vm.runInNewContext(`new Error()`); console.assert( !(crossErr instanceof Error) ); console.assert( Object.getPrototypeOf(err) !== Object.getPrototypeOf(crossErr) ); ``` This PR changes to check using internal slots solves them. --- current: ``` > import vm from "node:vm"; undefined > vm.runInNewContext(`new Error("message")`) Error {} > vm.runInNewContext(`new Date("2018-12-10T02:26:59.002Z")`) Date {} ``` this PR: ``` > import vm from "node:vm"; undefined > vm.runInNewContext(`new Error("message")`) Error: message at <anonymous>:1:1 > vm.runInNewContext(`new Date("2018-12-10T02:26:59.002Z")`) 2018-12-10T02:26:59.002Z ``` --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-01-01chore: update copyright to 2024 (#21753)David Sherret
2023-12-27refactor: simplify hyper, http, h2 deps (#21715)Bartek Iwańczuk
Main change is that: - "hyper" has been renamed to "hyper_v014" to signal that it's legacy - "hyper1" has been renamed to "hyper" and should be the default
2023-12-27refactor: finish test_util server cleanup, simplify dependencies (#21714)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/21578
2023-12-27perf: remove opAsync (#21690)Matt Mastracci
`opAsync` requires a lookup by name on each async call. This is a mechanical translation of all opAsync calls to ensureFastOps. The `opAsync` API on Deno.core will be removed at a later time.
2023-12-24refactor: use hyper 1.0 in grpc test server (#21584)Bartek Iwańczuk
Ref https://github.com/denoland/deno/issues/21578
2023-12-23chore(ext/node): use BufView natively in http2 (#21688)Matt Mastracci
Node HTTP/2 was using the default h2 `Bytes` datatype when we can be making using of `BufView` like we do in `Deno.serve`. `fetch` and `Deno.serverHttp` can't make use of `BufView` because they are using `reqwest` which is stuck on hyper 0.x at this time.
2023-12-22chore: update ext/http to hyper 1.0.1 and http 1.0 (#21588)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/21583.
2023-12-21chore: forward v1.39.1 commit to main (#21667) (#21671)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com> Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2023-12-14refactor(ext/http): fork fly_accept_encodings crate (#21586)Bartek Iwańczuk
Blocks update to Hyper 1.0. It's a really small library, no need to pull it as a dependency. Blocker for #21583
2023-12-131.39.0 (#21560)denobot
Bumped versions for 1.39.0 Please ensure: - [x] Target branch is correct (`vX.XX` if a patch release, `main` if minor) - [x] Crate versions are bumped correctly - [x] deno_std version is incremented in the code (see `cli/deno_std.rs`) - [x] Releases.md is updated correctly (think relevancy and remove reverts) To make edits to this PR: ```shell git fetch upstream release_1_39.0 && git checkout -b release_1_39.0 upstream/release_1_39.0 ``` cc @mmastrac --------- Co-authored-by: mmastrac <mmastrac@users.noreply.github.com> Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-12-13fix(websockets): server socket field initialization (#21433)Divy Srivastava
2023-12-07refactor: pull 'core', 'internals', 'primordials' from ES module (#21462)Bartek Iwańczuk
This commit refactors how we access "core", "internals" and "primordials" objects coming from `deno_core`, in our internal JavaScript code. Instead of capturing them from "globalThis.__bootstrap" namespace, we import them from recently added "ext:core/mod.js" file.
2023-12-06feat: stabilize Deno.HttpServer.shutdown and Unix socket support (#21463)Bartek Iwańczuk
This commit stabilizes "Deno.HttpServer.shutdown" API as well as Unix socket support in "Deno.serve" API. --------- Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2023-12-06chore: forward v1.38.5 release commit to main (#21472)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
2023-11-30chore: forward v1.38.4 release commit to main (#21400)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
2023-11-27chore(ext/http): fix E0446 on some compiler versions (#21362)Matt Mastracci
Rust 1.74 may have made this code temporarily valid in [#113126 Replace old private-in-public diagnostic with type privacy lints](https://github.com/rust-lang/rust/pull/113126), so we didn't catch it at build time. It fails in 1.73 and +nightly, however.
2023-11-24chore: forward v1.38.3 release commit to main (#21320)denobot
2023-11-23fix(ext/http): avoid lockup in graceful shutdown (#21253)Matt Mastracci
Follow-up to #20822. cc @lrowe The `httpServerExplicitResourceManagement` tests were randomly failing on CI because of a race. The `drain` waker was missing wakeup events if the listeners shut down after the last HTTP response finished. If we lost the race (rare), the server Rc would be dropped and we wouldn't poll it again. This replaces the drain waker system with a signalling Rc that always resolves when the refcount is about to become 1. Fix verified by running serve tests in a loop: ``` for i in {0..100}; do cargo run --features=__http_tracing -- test -A --unstable '/Users/matt/Documents/github/deno/deno/cli/tests/unit/ser ve_test.ts' --filter httpServerExplicitResourceManagement; done; ```
2023-11-18chore(ext/http): bump version for re-release (#21254)Matt Mastracci
Syncs the changes to main for a deno_http version bump we needed to do. `deno_http` v1.20 was released from the v1.38 branch.
2023-11-18fix(ext/http): fix crash in dropped Deno.serve requests (#21252)Matt Mastracci
Fixes #21250 We were attempting to recycle dropped resource responses too early.
2023-11-17chore: forward v1.38.2 release commit to main (#21236)denobot
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2023-11-16fix(doc): issue discovering re-exports of re-exports sometimes (#21223)David Sherret
2023-11-15feat(ext/net): use rustls_tokio_stream (#21205)Matt Mastracci
Fixes #21121 and #19498 Migrates fully to rustls_tokio_stream. We no longer need to maintain our own TlsStream implementation to properly support duplex. This should fix a number of errors with TLS and websockets, HTTP and "other" places where it's failing.
2023-11-13refactor(ext/http): Use HttpRecord as response body to track until body ↵Laurence Rowe
completion (#20822) Use HttpRecord as response body so requests can be tracked all the way to response body completion. This allows Request properties to be accessed while the response body is streaming. Graceful shutdown now awaits a future instead of async spinning waiting for requests to finish. On the minimal benchmark this refactor improves performance an additional 2% over pooling alone for a net 3% increase over the previous deno main branch. Builds upon https://github.com/denoland/deno/pull/20809 and https://github.com/denoland/deno/pull/20770. --------- Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-11-13perf(ext/http): Object pooling for HttpRecord and HeaderMap (#20809)Laurence Rowe
Reuse existing existing allocations for HttpRecord and response HeaderMap where possible. At request end used allocations are returned to the pool and the pool and the pool sized to 1/8th the current number of inflight requests. For http1 hyper will reuse the response HeaderMap for the following request on the connection. Builds upon https://github.com/denoland/deno/pull/20770 --------- Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-11-13refactor(ext/http): refer to HttpRecord directly using v8::External (#20770)Laurence Rowe
Makes the JavaScript Request use a v8:External opaque pointer to directly refer to the Rust HttpRecord. The HttpRecord is now reference counted. To avoid leaks the strong count is checked at request completion. Performance seems unchanged on the minimal benchmark. 118614 req/s this branch vs 118564 req/s on main, but variance between runs on my laptop is pretty high. --------- Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-11-10chore: forward v1.38.1 release commit to main (#21144)denobot
This is the release commit being forwarded back to main for 1.38.1 Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com> Co-authored-by: littledivy <littledivy@users.noreply.github.com>
2023-11-09perf: remove knowledge of promise IDs from deno (#21132)Matt Mastracci
We can move all promise ID knowledge to deno_core, allowing us to better experiment with promise implementation in deno_core. `{un,}refOpPromise(promise)` is equivalent to `{un,}refOp(promise[promiseIdSymbol])`
2023-11-07fix(ext/http): Throwing Error if the return value of Deno.serve handler is ↵Aravind
not a Response class (#21099) --------- Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-11-021.38.0 (#21051)denobot
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-11-01feat: disposable Deno resources (#20845)Luca Casonato
This commit implements Symbol.dispose and Symbol.asyncDispose for the relevant resources. Closes #20839 --------- Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>