deno/ext/net
Bartek Iwańczuk da1bf978f0
feat: add tcpBacklog arg to Deno.listen{Tls} and Deno.serve (#30541)
This commit adds `tcpBacklog` argument to `Deno.listen`,
`Deno.listenTls` and `Deno.serve` APIs.

The argument specifies maximum number of pending connections in the
listen queue, and by default is set to 511. 

Users that expect huge bursts of traffic can customize this
option to a higher value.

Ref https://github.com/denoland/deno/pull/30471
Closes https://github.com/denoland/deno/issues/30388
2025-08-28 09:43:20 +02:00
..
01_net.js feat: add tcpBacklog arg to Deno.listen{Tls} and Deno.serve (#30541) 2025-08-28 09:43:20 +02:00
02_tls.js feat: add tcpBacklog arg to Deno.listen{Tls} and Deno.serve (#30541) 2025-08-28 09:43:20 +02:00
03_quic.js fix: unhandled rejection from quic (#28448) 2025-03-11 07:23:42 +01:00
Cargo.toml 2.4.5 (#30476) 2025-08-21 13:41:58 +02:00
io.rs fix: android build (#30360) 2025-08-12 15:47:18 +02:00
lib.rs refactor(permissions): push down special file checking to permissions container (#30005) 2025-07-09 20:50:26 +00:00
ops.rs feat: add tcpBacklog arg to Deno.listen{Tls} and Deno.serve (#30541) 2025-08-28 09:43:20 +02:00
ops_tls.rs feat: add tcpBacklog arg to Deno.listen{Tls} and Deno.serve (#30541) 2025-08-28 09:43:20 +02:00
ops_unix.rs chore: Rust 1.89.0 (#30364) 2025-08-09 11:11:48 +00:00
quic.rs feat: allow disable hostname verification in TLS (#30409) 2025-08-23 10:37:57 +05:30
raw.rs fix: android build (#30360) 2025-08-12 15:47:18 +02:00
README.md chore: remove redundant operations from README.md (#30228) 2025-07-28 14:41:49 -04:00
resolve_addr.rs chore: update to edition 2024 (#29923) 2025-07-02 17:59:39 -07:00
tcp.rs feat: add tcpBacklog arg to Deno.listen{Tls} and Deno.serve (#30541) 2025-08-28 09:43:20 +02:00
tunnel.rs chore: Rust 1.89.0 (#30364) 2025-08-09 11:11:48 +00:00

deno_net

This crate implements networking APIs.

Usage Example

From javascript, include the extension's source:

import * as webidl from "ext:deno_webidl/00_webidl.js";
import * as net from "ext:deno_net/01_net.js";
import * as tls from "ext:deno_net/02_tls.js";

Then from rust, provide: deno_net::deno_net::init::<Permissions>(root_cert_store_provider, unsafely_ignore_certificate_errors)

Where:

  • root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>
  • unsafely_ignore_certificate_errors: Option<Vec<String>>
  • Permissions: A struct implementing deno_net::NetPermissions

In the extensions field of your RuntimeOptions

Dependencies

  • deno_web: Provided by the deno_web crate
  • deno_fetch: Provided by the deno_fetch crate

Provided ops

Following ops are provided, which can be accessed through Deno.ops:

Net

  • op_net_accept_tcp
  • op_net_accept_unix
  • op_net_connect_tcp
  • op_net_connect_unix
  • op_net_listen_tcp
  • op_net_listen_udp
  • op_net_listen_unix
  • op_net_listen_unixpacket
  • op_net_recv_udp
  • op_net_recv_unixpacket
  • op_net_send_udp
  • op_net_send_unixpacket
  • op_net_connect_tls
  • op_net_listen_tls
  • op_net_accept_tls
  • op_net_join_multi_v4_udp
  • op_net_join_multi_v6_udp
  • op_net_leave_multi_v4_udp
  • op_net_leave_multi_v6_udp
  • op_net_set_multi_loopback_udp
  • op_net_set_multi_ttl_udp

TLS

  • op_tls_start
  • op_tls_handshake
  • op_tls_key_null
  • op_tls_key_static
  • op_tls_key_static_from_file
  • op_tls_cert_resolver_create
  • op_tls_cert_resolver_poll
  • op_tls_cert_resolver_resolve
  • op_tls_cert_resolver_resolve_error

Other

  • op_node_unstable_net_listen_udp
  • op_dns_resolve
  • op_set_nodelay
  • op_set_keepalive
  • op_node_unstable_net_listen_unixpacket