190 breaking releases

new 0.193.0 Apr 14, 2025
0.191.0 Apr 5, 2025
0.189.0 Mar 28, 2025
0.176.0 Dec 19, 2024
0.4.0 Jul 26, 2021

#1074 in Network programming

Download history 780/week @ 2024-12-24 623/week @ 2024-12-31 1036/week @ 2025-01-07 1609/week @ 2025-01-14 1435/week @ 2025-01-21 1637/week @ 2025-01-28 1310/week @ 2025-02-04 1314/week @ 2025-02-11 1913/week @ 2025-02-18 2254/week @ 2025-02-25 1633/week @ 2025-03-04 1572/week @ 2025-03-11 2025/week @ 2025-03-18 1255/week @ 2025-03-25 1787/week @ 2025-04-01 1675/week @ 2025-04-08

7,024 downloads per month
Used in 52 crates (20 directly)

MIT license

370KB
11K SLoC

Rust 10K SLoC // 0.0% comments JavaScript 1.5K SLoC // 0.0% comments

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_ops_and_esm::<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_recv_udp
  • op_net_send_udp
  • 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
  • op_net_accept_tcp
  • op_net_connect_tcp
  • op_net_listen_tcp
  • op_net_listen_udp
  • op_net_connect_tls
  • op_net_listen_tls
  • op_net_accept_tls
  • op_net_accept_unix
  • op_net_connect_unix
  • op_net_listen_unix
  • op_net_listen_unixpacket
  • op_net_recv_unixpacket
  • op_net_send_unixpacket

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
  • op_tls_start
  • op_tls_handshake

Other

  • op_node_unstable_net_listen_udp
  • op_dns_resolve
  • op_dns_resolve
  • op_set_nodelay
  • op_set_keepalive
  • op_node_unstable_net_listen_unixpacket

Dependencies

~142MB
~2.5M SLoC