summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2023-04-27refactor(ext/node): migrate back to using "Deno.serve" API for HTTP server ↵Bartek Iwańczuk
(#18865) This commit fixes "node:http" API to properly handle "upgrade" requests and thus marking Vite work again. This is done by migrating back to "Deno.serve()" and internal "upgradeHttpRaw" APIs for "node:http" module polyfill.
2023-04-26fix(dts): `URLPatternComponentResult` groups should have possibly undefined ↵David Sherret
key values (#18643) Closes #18640
2023-04-27fix(ext/http): internal upgradeHttpRaw works with "Deno.serve()" API (#18859)Matt Mastracci
Fix internal "upgradeHttpRaw" API restoring capability to upgrade HTTP connection in polyfilles "node:http" API.
2023-04-26refactor(ext/node): use a snapshottable global name for Node's globalThis ↵David Sherret
(#18860)
2023-04-26feat(ext/kv): add more atomic operation helpers (#18854)Ryan Dahl
Co-authored-by: losfair <zhy20000919@hotmail.com> Co-authored-by: Luca Casonato <hello@lcas.dev>
2023-04-26perf(ext/http): optimize away code based on callback length (#18849)Divy Srivastava
hello world on macOS: ``` divy@mini ~> wrk -d 10s --latency http://127.0.0.1:4500 Running 10s test @ http://127.0.0.1:4500 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 80.82us 42.95us 2.91ms 96.40% Req/Sec 56.91k 1.94k 60.77k 95.54% Latency Distribution 50% 77.00us 75% 89.00us 90% 105.00us 99% 146.00us 1143455 requests in 10.10s, 138.49MB read Requests/sec: 113212.38 Transfer/sec: 13.71MB divy@mini ~> wrk -d 10s --latency http://127.0.0.1:4500 Running 10s test @ http://127.0.0.1:4500 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 88.63us 78.77us 2.55ms 98.72% Req/Sec 54.84k 2.16k 57.35k 98.51% Latency Distribution 50% 80.00us 75% 93.00us 90% 109.00us 99% 249.00us 1102313 requests in 10.10s, 133.51MB read Requests/sec: 109136.61 Transfer/sec: 13.22MB ``` Expected to have a larger impact on Linux
2023-04-26Revert "chore(ext/websocket): Add autobahn|testsuite fuzzingclient (#… ↵Bartek Iwańczuk
(#18856) …18846)" This reverts commit 036778c2e8e159ef1e586de4102f823367b7c554. Keeps failing on `main` branch.
2023-04-26perf(ext/http): optimize for zero or one-packet response streams (#18834)Matt Mastracci
Improve `deno_reactdom_ssr_flash.jsx` by optimizing for zero/one-packet response streams.
2023-04-26BREAKING(unstable): remove "Deno.serve(handler, options)" overload (#18759)Bartek Iwańczuk
In preparation to stabilization of the API this overload was decided to be removed.
2023-04-26chore(ext/websocket): Add autobahn|testsuite fuzzingclient (#18846)Divy Srivastava
Closes #17242
2023-04-26perf(ext/http): use smi for slab IDs (#18848)Divy Srivastava
2023-04-26perf(ext/http): avoid spread arg deopt in op_http_wait (#18850)Divy Srivastava
2% improvement on macOS hello world.
2023-04-26chore(ext/websocket): remove ping frame handling (#18847)Divy Srivastava
Automatically done in the fastwebsockets crate
2023-04-25refactor(cli): extract out NpmModuleLoader from CliModuleLoader (#18842)David Sherret
Need to share this with the loader used in deno compile
2023-04-26fix(core): Wrap safe collections' argument of primordials (#18750)Kenta Moriuchi
2023-04-25refactor(ext/kv): don't use bigint literals (#18841)Bartek Iwańczuk
This causes `DCHECK` fail in V8 when pointer compression is disabled.
2023-04-25refactor(ext/websocket): use specialized ops (#18819)Bartek Iwańczuk
Instead of relying on `op_ws_send` to send different kinds of messages, use specialized ops everywhere.
2023-04-25refactor(ext/http): comments for h2c code (#18833)Matt Mastracci
2023-04-25fix(ext/node): fix hash.flush (#18818)Yoshiya Hinosawa
2023-04-24refactor(ext/node): enforce interior mutable for `NodePermissions` to remove ↵David Sherret
clones (#18831) We can make `NodePermissions` rely on interior mutability (which the `PermissionsContainer` is already doing) in order to not have to clone everything all the time. This also reduces the chance of an accidental `borrow` while `borrrow_mut`.
2023-04-24refactor(ext/node): allow injecting `NodeFs` from CLI (#18829)David Sherret
This allows providing a `NodeFs` as part of the `WorkerOptions`.
2023-04-24feat(ext/http): h2c for http/2 (#18817)Matt Mastracci
This implements HTTP/2 prior-knowledge connections, allowing clients to request HTTP/2 over plaintext or TLS-without-ALPN connections. If a client requests a specific protocol via ALPN (`h2` or `http/1.1`), however, the protocol is forced and must be used.
2023-04-24fix(npm): only include top level packages in top level node_modules ↵David Sherret
directory (#18824) We were indeterministically including packages in the top level `node_modules/` folder when using a local node_modules directory. This change aligns with pnpm and only includes top level packages in this folder. This should be faster for initializing the folder, but may expose issues in packages that reference other packages not defined in their dependencies. That said, the behaviour previously was previously broken. This has exposed a bug in the require implementation where it doesn't find a package (which is the main underlying issue here). There is a failing test already for this in the test suite after this change. Closes #18822 --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-24refactor(ext/node): reorganize ops (#18799)Bartek Iwańczuk
Move all op related code of "ext/node" to "ext/node/ops" module. These files were unnecessarily scattered around the extension.
2023-04-23chore: remove tokio-tungstenite dependency (#18814)Bartek Iwańczuk
2023-04-23refactor(ext/websocket): Remove dep on tungstenite by reworking code (#18812)Matt Mastracci
2023-04-23fix(ext/http): ensure that multiple upgrades and multiple simultaneous ↵Matt Mastracci
requests cannot cause a panic (#18810) Fix a bug where we weren't saving `slabId` in #18619, plus add some robustness checks around multiple upgrades (w/test).
2023-04-22feat(ext/http): Rework Deno.serve using hyper 1.0-rc3 (#18619)Matt Mastracci
This is a rewrite of the `Deno.serve` API to live on top of hyper 1.0-rc3. The code should be more maintainable long-term, and avoids some of the slower mpsc patterns that made the older code less efficient than it could have been. Missing features: - `upgradeHttp` and `upgradeHttpRaw` (`upgradeWebSocket` is available, however). - Automatic compression is unavailable on responses.
2023-04-22feat(node/http): implement ClientRequest.setTimeout() (#18783)Levente Kurusa
- implement setTimeout with matching semantics of Node - add the test from Node but leave it turned off because ClientRequest has no underlying socket
2023-04-22refactor: rewrite tests to "fastwebsockets" crate (#18781)Bartek Iwańczuk
Migrating off of `tokio-tungstenite` crate. --------- Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2023-04-21refactor(node): move most of cli/node to ext/node (#18797)David Sherret
This is just a straight refactor and I didn't do any cleanup in ext/node. After this PR we can start to clean it up and make things private that don't need to be public anymore.
2023-04-21refactor: move some CJS and ESM code analysis to ext/node (#18789)David Sherret
2023-04-21fix(ext/websocket): upgrade fastwebsockets to 0.2.4 (#18791)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/18775
2023-04-20refactor(ext/websocket): use fastwebsockets client (#18725)Divy Srivastava
2023-04-20refactor(ext/node): remove polyfills/_core.ts (#18766)Yoshiya Hinosawa
2023-04-20refactor(ext/webidl): remove option bags from "makeException" (#18679)Bartek Iwańczuk
Creating these options bags is more costly than passing arguments one-by-one. Especially since `prefix` and `context` are passed to all functions.
2023-04-19fix(ext/node): implement asymmetric keygen (#18651)Divy Srivastava
Towards #18455 This commit implements the keypair generation for asymmetric keys for the `generateKeyPair` API. See how key material is managed in this implementation: https://www.notion.so/denolandinc/node-crypto-design-99fc33f568d24e47a5e4b36002c5325d?pvs=4 Private and public key encoding depend on `KeyObject#export` which is not implemented. I've also skipped ED448 and X448 since we need a crate for that in WebCrypto too.
2023-04-19fix(ext/node): improve vm.runInThisContext (#18767)Yoshiya Hinosawa
2023-04-19fix(ext/node): add crypto.sign|verify methods (#18765)Yoshiya Hinosawa
2023-04-19tests: deflake 'check_sockopt' (#18763)Bartek Iwańczuk
This function was inherently racy which showed on slow machines - the connect future started before the spawned task was first polled. This change makes it so we're already accepting a connection when the connect future is first polled.
2023-04-18test: fix flaky tcp tests (#18755)Bartek Iwańczuk
https://github.com/denoland/deno/actions/runs/4734473301/jobs/8403453096?pr=18749
2023-04-18chore: forward v1.32.5 release commit to main (#18758)denobot
Co-authored-by: levex <levex@users.noreply.github.com> Co-authored-by: Levente Kurusa <lkurusa@kernelstuff.org>
2023-04-18refactor(node/crypto): scrypt polyfill to rust (#18746)Levente Kurusa
2023-04-18fix(ext/node): implement crypto.createVerify (#18703)Yoshiya Hinosawa
2023-04-18fix(path): Remove non node symbols (#18630)Ryan Clements
- preserve referential invariants (e.g. path.posix === posix) - remove glob and separator exports - save removal of fromFileUrl and toFileUrl for a different PR as that refactor is more involved - addresses #18177
2023-04-18fix(ext/node): add req.socket.remoteAddress (#18733)Yoshiya Hinosawa
2023-04-18fix(ext/node): polyfill response._implicitHeader method (#18738)Yoshiya Hinosawa
2023-04-17chore(ext/fs): decouple fs trait from deno_core (#18732)Luca Casonato
This commit removes the dependencies on `deno_core` for the Fs trait. This allows to move the trait into a different crate that does not depend on core in the limit. This adds a new `bounds` field to `deno_core::extension!` that expands to `where` clauses on the generated code. This allows to add bounds to the extension parameters, such as `Fs::File: Resource`.
2023-04-17test: don't silently fail in check_sockopt (#18737)Bartek Iwańczuk
2023-04-15feat(kv): AtomicOperation#sum (#18704)Ryan Dahl