Aaron O'Mullan
8879244f72
fix(ext/http): error on invalid headers ( #14642 )
...
Minor regression/change-in-behaviour from #14552 that filtered out invalid http headers in rust vs error-ing back to JS
2022-05-17 14:40:30 +02:00
Aaron O'Mullan
037e46bb51
fix(ext/http): skip auto-compression if content-encoding present ( #14641 )
...
Regression from #14552
2022-05-17 14:02:45 +02:00
Andy Kurnia
42fec5150e
fix(ext/http): make serveHttp compress for Accept-Encoding: deflate, gzip ( #14525 )
2022-05-13 14:10:05 +02:00
Aaron O'Mullan
67e5a850cc
feat(serde_v8): bytes::Bytes support ( #14412 )
2022-05-13 12:53:13 +02:00
Bert Belder
89b428234c
1.21.3 ( #14584 )
2022-05-12 18:43:00 +02:00
Aaron O'Mullan
30841a1705
cleanup(ext/http): simpler http write ops ( #14552 )
...
Facilitates making `op_http_write_headers` sync and thus faster
2022-05-10 22:36:40 +02:00
Colin Ihrig
23c77df664
1.21.2 ( #14508 )
...
1.21.2
2022-05-05 19:37:27 -04:00
Luca Casonato
242273e69b
chore: update deps ( #14416 )
2022-05-05 12:41:59 +02:00
Divy Srivastava
fb390c5701
fix(ext/http): explicitly close resource after reading ( #14471 )
2022-05-04 20:09:15 +05:30
Leo Kettmeir
de2004dec5
Forward 1.21.1 ( #14428 )
2022-04-28 23:32:42 +02:00
Aaron O'Mullan
e24b8f075e
chore: deno_http v0.43.1 ( #14392 )
2022-04-25 21:31:34 +02:00
Divy Srivastava
609c359dd4
fix(ext/http): truncate read bytes when streaming bodies ( #14389 )
...
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-25 19:20:29 +02:00
Divy Srivastava
6dcf3a447c
perf(ext/http): fast path for uncompressed bodies ( #14366 )
2022-04-25 08:13:22 +05:30
Aaron O'Mullan
e2fba7b967
perf(ext/http): faster is_content_compressible ( #14383 )
...
Cleanup + benches
2022-04-24 21:45:56 +02:00
Aaron O'Mullan
4b7d306a19
perf(serde_v8): zero-copy StringOrBuffer ( #14381 )
2022-04-24 09:28:46 -03:00
Luca Casonato
1ad8c11bc9
chore: bump crates ( #14365 )
2022-04-22 16:54:42 +02:00
Divy Srivastava
57f7e07c13
Reland "perf(http): optimize ReadableStreams backed by a resource" ( #14346 )
2022-04-22 16:19:08 +05:30
Divy Srivastava
2a86b8fb02
Reland "feat(ext/http): stream auto resp body compression" ( #14345 )
2022-04-21 12:37:49 +05:30
denobot
29c8cd8aae
1.21.0 ( #14336 )
...
Co-authored-by: ry <ry@users.noreply.github.com>
Co-authored-by: David Sherret <dsherret@gmail.com>
2022-04-20 21:50:16 -04:00
Bartek Iwańczuk
03019e7781
Revert various PRs related to "ext/http" ( #14339 )
...
* 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-21 02:22:55 +02:00
Luca Casonato
8b25807054
feat(ext/http): stream auto resp body compression ( #14325 )
...
This commit adds support for auto response body compression for
streaming bodies.
2022-04-20 22:53:56 +02:00
Divy Srivastava
2612b6f20f
core: introduce resource.read_return
( #14331 )
2022-04-20 18:39:13 +02:00
Divy Srivastava
57a8fc37fc
perf(http): optimize ReadableStream
s backed by a resource ( #14284 )
2022-04-20 18:16:44 +05:30
David Sherret
0e4574b2e3
chore: forward v1.20.6 release commit to main ( #14288 )
2022-04-14 15:50:48 -04:00
David Sherret
b2aaf708ab
chore: forward v1.20.5 release commit to main ( #14232 )
2022-04-07 14:40:20 -04:00
Divy Srivastava
995d1666ff
chore(ext/websocket): custom arity ( #14202 )
2022-04-04 15:19:50 +05:30
Divy Srivastava
cc49b5e0d8
chore(ext/http): custom arity ( #14200 )
2022-04-04 15:19:35 +05:30
Bartek Iwańczuk
6c25b5135d
chore: update tokio, tokio-util and libc dependencies ( #14174 )
2022-04-02 19:54:40 +02:00
Aaron O'Mullan
94885bc293
experiment(serde_v8): derive_more enabled opaque wrappers ( #14096 )
2022-04-02 14:37:11 +02:00
David Sherret
7fec7c834c
1.20.4 ( #14168 )
2022-03-31 15:48:35 -04:00
Luca Casonato
37b0ec454c
chore: forward v1.20.3 release commit to main ( #14121 )
2022-03-25 18:53:55 +01:00
Kitson Kelly
cff1e92ecf
1.20.2
2022-03-24 14:47:06 +11:00
Divy Srivastava
5edcd9dd35
perf(http): avoid Set.has() when closing connection resource ( #14085 )
2022-03-23 13:05:34 +05:30
Divy Srivastava
5c9844e5f7
perf(http): avoid checking promise every request ( #14079 )
2022-03-23 07:23:59 +05:30
Aaron O'Mullan
45ef3c91c2
perf(http): avoid per header alloc ( #14051 )
2022-03-21 12:56:30 +01:00
Bartek Iwańczuk
52a6e9ef4a
feat(ext/net): Deno.upgradeHttp handles unix connections ( #13987 )
2022-03-19 14:21:49 +01:00
Ryan Dahl
fce60f2cc2
v1.20.1
2022-03-16 21:40:31 -04:00
Ryan Dahl
418c1eb4b3
v1.20.0
2022-03-16 16:07:35 -04:00
Bert Belder
c5270abad7
feat(unstable): Add Deno.upgradeHttp API ( #13618 )
...
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-16 14:54:18 +01:00
Aaron O'Mullan
bd481bf095
feat(ops): optional OpState ( #13954 )
2022-03-16 00:33:46 +01:00
Aaron O'Mullan
88d0f01948
feat(ops): custom arity ( #13949 )
...
Also cleanup & drop ignored wildcard op-args
2022-03-14 23:38:53 +01:00
Divy Srivastava
b4e42953e1
feat(core): codegen ops ( #13861 )
...
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2022-03-14 18:44:15 +01:00
Yoshiya Hinosawa
3c11768aab
v1.19.3
2022-03-10 23:29:14 +09:00
Satya Rohith
788553bf2f
chore: bump deno_http to 0.33.0 ( #13867 )
2022-03-07 23:16:03 +05:30
Satya Rohith
670aef5c1a
fix(ext/http): drop content-length header on compression ( #13866 )
2022-03-07 22:43:15 +05:30
Satya Rohith
d5642f5df7
chore: bump deno_http to 0.32.0 ( #13850 )
2022-03-07 00:15:10 +05:30
Kitson Kelly
d1db500cda
feat(ext/http): auto-compression of fixed response bodies ( #13769 )
...
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-03-04 16:04:39 +11:00
Satya Rohith
95459e60f6
chore: bump crate version for 1.19.2 ( #13824 )
2022-03-03 15:05:18 -05:00
David Sherret
4deefafdd1
chore: bump crate versions for 1.19.1 ( #13760 )
2022-02-24 17:45:39 -05:00
Bartek Iwańczuk
e17ab6322e
chore: release crates for v1.19.0 ( #13698 )
2022-02-17 00:57:40 +01:00
David Sherret
b98afb59ae
feat: deno vendor ( #13670 )
2022-02-16 13:14:19 -05:00
ylxdzsw
074f53234a
feat(ext/http): add support for unix domain sockets ( #13628 )
2022-02-16 00:16:12 +01:00
Bartek Iwańczuk
82284d8052
chore: forward v1.18.2 to main ( #13595 )
2022-02-04 21:44:38 +01:00
Bartek Iwańczuk
8176a4d166
refactor: primordials for instanceof ( #13527 )
2022-02-01 18:06:11 +01:00
Bartek Iwańczuk
5cf23176dc
chore: forward v1.18.1 to main ( #13514 )
2022-01-27 18:52:34 +01:00
Bartek Iwańczuk
f248e6f177
Revert "refactor: update runtime code for primordial checks for "instanceof" ( #13497 )" ( #13511 )
...
This reverts commit 884143218f
.
2022-01-27 16:27:22 +01:00
Bartek Iwańczuk
884143218f
refactor: update runtime code for primordial checks for "instanceof" ( #13497 )
2022-01-27 13:36:36 +01:00
Divy Srivastava
16776c9ade
chore: bump crate version for 0.18.0 ( #13441 )
2022-01-20 20:50:39 +05:30
Bartek Iwańczuk
9975ede773
chore: forward v1.17.3 to main ( #13364 )
2022-01-13 20:47:42 +01:00
Ryan Dahl
1fb5858009
chore: update copyright to 2022 ( #13306 )
...
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2022-01-07 22:09:52 -05:00
Leo Kettmeir
2067820714
feat(ext/websocket): server automatically handle ping/pong for incoming WebSocket ( #13172 )
2022-01-06 17:41:16 +01:00
Bartek Iwańczuk
46f2ff1205
chore: forward 1.17.2 to main ( #13295 )
2022-01-06 13:20:42 +01:00
Bartek Iwańczuk
9391ba1098
chore: merge v1.17.1 into main ( #13184 )
2021-12-22 22:20:17 +01:00
Bartek Iwańczuk
e0cba6b19b
chore: release crates for v1.17.0 ( #13112 )
2021-12-16 18:51:23 +01:00
Luca Casonato
72e9720e91
chore: merge v1.16.4 into main ( #12984 )
2021-12-04 01:26:54 +01:00
Bert Belder
c6f3493f18
chore: merge v1.16.3 into main ( #12892 )
2021-11-24 15:56:18 -08:00
Bert Belder
6a797f7ba9
chore(ext/http): deno fmt ( #12798 )
2021-11-17 15:34:41 -08:00
David Sherret
cd61cedd19
chore: bump crates for 1.16.2 ( #12792 )
2021-11-17 10:14:23 -05:00
Luca Casonato
3250ffe020
chore: bump crate versions for 1.16.1 ( #12729 )
2021-11-11 11:16:05 +01:00
Bert Belder
72a6231a61
refactor(ext/http): rewrite hyper integration and fix bug ( #12732 )
...
Fixes: #12193
Fixes: #12251
Closes: #12714
2021-11-10 14:51:43 -08:00
Luca Casonato
4f64acd4e4
chore: bump crate versions for 1.16.0 ( #12706 )
2021-11-09 13:03:17 +01:00
Luca Casonato
75793baae8
Revert "refactor(ext/http): rewrite hyper integration and fix bug ( #12332 )" ( #12704 )
...
This reverts commit 5b1e537446
.
2021-11-09 12:10:21 +01:00
Bert Belder
5b1e537446
refactor(ext/http): rewrite hyper integration and fix bug ( #12332 )
...
Fixes: #12193
2021-11-08 12:49:11 -08:00
Bartek Iwańczuk
8e31bbbe55
chore: update to Rust edition 2021 ( #12578 )
2021-11-02 10:03:37 -04:00
Leo K
6268703487
fix(ext/http): allow multiple values in upgrade header for websocket ( #12551 )
...
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2021-10-26 23:06:44 +02:00
Aaron O'Mullan
c27ef0ac7b
perf(http): encode string bodies in op-layer ( #12451 )
...
Using serde_v8's StringOrBuffer
2021-10-26 22:00:01 +02:00
Yoshiya Hinosawa
c7dcf1cbdd
chore: bump crate version for 1.15.3 ( #12531 )
2021-10-25 15:48:01 +09:00
Bartek Iwańczuk
1cd9272a91
chore: release crates for v1.15.2 ( #12478 )
2021-10-18 20:30:00 +02:00
Ikko Ashimine
a1d6b53acd
docs(ext/http): fix typo in http/lib.rs ( #12466 )
2021-10-17 20:04:44 +09:00
Satya Rohith
fb094ae026
chore: bump crate version for 1.15.0 ( #12406 )
2021-10-12 22:16:15 +05:30
Luca Casonato
c40d5040cd
fix(http): don't expose body on GET/HEAD requests ( #12260 )
...
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-11 18:39:55 +02:00
Leo K
77a00ce1fb
chore: various op cleanup ( #12329 )
2021-10-05 22:38:27 +02:00
Bartek Iwańczuk
d67e858506
chore: merge v1.14.3 into main ( #12327 )
2021-10-05 21:40:39 +02:00
mynane
62920e4ef5
fix(ext/http): merge identical if/else branches ( #12269 )
2021-09-29 11:55:10 -07:00
Aaron O'Mullan
e8901281da
chore: bump crate versions for 1.14.2 ( #12253 )
2021-09-28 12:19:03 +02:00
Aaron O'Mullan
9167f0c6bd
perf(fetch): optimize newInnerRequest blob url check ( #12245 )
...
Avoid "blob:" prefix check on requests built in the http module since those can never be blob objects
Reduces cost of `newInnerRequest()` from 20ms to 0.1ms in my profiled run on ~2.5M reqs
2021-09-27 13:19:24 +02:00
Ben Noordhuis
2b6f8d0187
fix(ext/http): include port number in h2 urls ( #12181 )
2021-09-26 20:26:16 +02:00
Aaron O'Mullan
3c88dffd32
fix(http): panic when responding to a closed conn ( #12216 )
...
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-25 13:22:19 +02:00
Ben Noordhuis
16ea39ee48
fix(ext/http): fortify "is websocket?" check ( #12179 )
...
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-09-25 10:02:26 +02:00
Kitson Kelly
2a56cd545c
chore: bump crate versions for 1.14.1 ( #12172 )
2021-09-22 06:53:47 +10:00
David Sherret
16c27fce1f
chore: bump crate versions for 0.14 ( #12072 )
2021-09-14 15:38:35 -04:00
Bartek Iwańczuk
ba8bbe6f1c
refactor: use Deno.core.tryClose ( #11980 )
2021-09-11 02:54:37 +02:00
Bert Belder
fa963909e5
perf(ext/http): optimize auto cleanup of request resource ( #11978 )
...
Fixes #11963 .
2021-09-10 15:47:09 -07:00
Bartek Iwańczuk
b31dad89a6
chore: add README to ext/http/ ( #11958 )
2021-09-08 20:48:28 +02:00
Bartek Iwańczuk
85e316bd6b
chore: release deno_http 0.8.0 ( #11956 )
2021-09-08 19:32:19 +02:00
Bartek Iwańczuk
2de5587547
fix(ext/http): resource leak if request body is not consumed ( #11955 )
2021-09-08 10:12:23 +02:00
Luca Casonato
1bf7b90ca8
chore: update dependencies ( #11856 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-09-02 23:38:44 +02:00
Luca Casonato
fcd0992dba
fix: move unstable declarations to deno.unstable ( #11876 )
2021-08-31 11:25:15 +02:00
Dayan C. Galiazzi
873cce27b8
fix(ext/http): websocket upgrade header check ( #11830 )
2021-08-25 00:55:32 +02:00
David Sherret
6db8cbb650
chore: release crates for 1.13.2 ( #11820 )
2021-08-23 15:48:08 -04:00
Bartek Iwańczuk
2187c11e5d
fix(ext/http): resource leak on HttpConn.close() ( #11805 )
...
This commit adds tracking of resources that are related
to "HttpConn" so they can be closed automatically
when closing the connection.
2021-08-23 16:15:59 +02:00
David Sherret
a66a7bebbe
chore: release crates for 1.13.1 ( #11729 )
2021-08-16 16:49:14 -04:00
Bartek Iwańczuk
d1d2388d7f
test(ext/http): add test for incomplete HTTP message and fix resource leak ( #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-16 13:43:43 +02:00
Aaron O'Mullan
2ca454b402
refactor(ops): return BadResource errors in ResourceTable calls ( #11710 )
...
* 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-15 13:29:19 +02:00
Aaron O'Mullan
18ff6bb053
perf(ext/http): faster req_url string assembly ( #11711 )
...
This stood out on a flamegraph, it took up ~1% of a profiled loadtest of `cli/bench/deno_http_native.js`
2021-08-15 12:25:16 +02:00
Aaron O'Mullan
c87b13e745
cleanup(ext/http): simplify cookie header handling ( #11704 )
...
cleanup(ext/http): simplify cookie header handling
Use `Vec::join` instead of essentially reimplementing it. There should be no meaningful performance delta
2021-08-14 14:35:58 +02:00
Aaron O'Mullan
8fa46a7b44
cleanup(ext/http): simplify op_http_request_next ( #11691 )
...
* 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-14 13:25:05 +02:00
Leo K
0c9d6cbb2a
fix(http/ws): support multiple options in connection header ( #11675 )
...
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-13 20:52:13 +02:00
Bartek Iwańczuk
2937f02f00
fix(ext/http): remove unwrap() when HTTP conn errors ( #11674 )
2021-08-13 12:07:05 +02:00
Ryan Dahl
a0285e2eb8
Rename extensions/ directory to ext/ ( #11643 )
2021-08-11 12:27:05 +02:00