mirror of
https://github.com/denoland/deno.git
synced 2025-08-30 15:27:53 +00:00
feat(unstable): Implement QUIC (#21942)
Implements a QUIC interface, loosely based on the WebTransport API (a future change could add the WebTransport API, built on top of this one). [quinn](https://docs.rs/quinn/latest/quinn/) is used for the underlying QUIC implementation, for a few reasons: - A cloneable "handle" api which fits quite nicely into deno resources. - Good collaboration with the rust ecosystem, especially rustls. - I like it. <!-- Before submitting a PR, please read https://deno.com/manual/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. 7. Open as a draft PR if your work is still in progress. The CI won't run all steps, but you can add '[ci]' to a commit message to force it to. 8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label. -->
This commit is contained in:
parent
23f7032d56
commit
65b647909d
12 changed files with 1591 additions and 19 deletions
|
@ -5,6 +5,7 @@ pub mod ops;
|
|||
pub mod ops_tls;
|
||||
#[cfg(unix)]
|
||||
pub mod ops_unix;
|
||||
mod quic;
|
||||
pub mod raw;
|
||||
pub mod resolve_addr;
|
||||
pub mod tcp;
|
||||
|
@ -158,8 +159,34 @@ deno_core::extension!(deno_net,
|
|||
ops_unix::op_node_unstable_net_listen_unixpacket<P>,
|
||||
ops_unix::op_net_recv_unixpacket,
|
||||
ops_unix::op_net_send_unixpacket<P>,
|
||||
|
||||
quic::op_quic_accept,
|
||||
quic::op_quic_accept_bi,
|
||||
quic::op_quic_accept_incoming,
|
||||
quic::op_quic_accept_uni,
|
||||
quic::op_quic_close_connection,
|
||||
quic::op_quic_close_endpoint,
|
||||
quic::op_quic_connection_closed,
|
||||
quic::op_quic_connection_get_protocol,
|
||||
quic::op_quic_connection_get_remote_addr,
|
||||
quic::op_quic_connect<P>,
|
||||
quic::op_quic_endpoint_get_addr,
|
||||
quic::op_quic_get_send_stream_priority,
|
||||
quic::op_quic_incoming_accept,
|
||||
quic::op_quic_incoming_refuse,
|
||||
quic::op_quic_incoming_ignore,
|
||||
quic::op_quic_incoming_local_ip,
|
||||
quic::op_quic_incoming_remote_addr,
|
||||
quic::op_quic_incoming_remote_addr_validated,
|
||||
quic::op_quic_listen<P>,
|
||||
quic::op_quic_max_datagram_size,
|
||||
quic::op_quic_open_bi,
|
||||
quic::op_quic_open_uni,
|
||||
quic::op_quic_read_datagram,
|
||||
quic::op_quic_send_datagram,
|
||||
quic::op_quic_set_send_stream_priority,
|
||||
],
|
||||
esm = [ "01_net.js", "02_tls.js" ],
|
||||
esm = [ "01_net.js", "02_tls.js", "03_quic.js" ],
|
||||
options = {
|
||||
root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>,
|
||||
unsafely_ignore_certificate_errors: Option<Vec<String>>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue