155个重大版本更新

新增 0.158.0 2024年8月22日
0.156.0 2024年7月31日
0.135.0 2024年3月28日
0.121.0 2023年12月21日
0.4.0 2021年7月26日

#632 in 网络编程

Download history 2105/week @ 2024-05-02 1866/week @ 2024-05-09 2161/week @ 2024-05-16 1462/week @ 2024-05-23 1505/week @ 2024-05-30 1475/week @ 2024-06-06 2261/week @ 2024-06-13 1901/week @ 2024-06-20 1005/week @ 2024-06-27 1438/week @ 2024-07-04 1605/week @ 2024-07-11 1110/week @ 2024-07-18 1590/week @ 2024-07-25 1185/week @ 2024-08-01 748/week @ 2024-08-08 504/week @ 2024-08-15

4,231次每月下载
42 个crate(16个直接)中使用 42 个crate (16直接)

MIT 许可证

280KB
8K SLoC

Rust 7K SLoC // 0.0% comments JavaScript 874 SLoC // 0.0% comments TypeScript 122 SLoC // 0.8% comments

deno_net

此crate实现了网络API。

使用示例

从javascript中包含扩展的源代码

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";

然后从rust中提供:deno_net::deno_net::init_ops_and_esm::<Permissions>(root_cert_store_provider, unsafely_ignore_certificate_errors)

其中

  • root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>
  • unsafely_ignore_certificate_errors: Option<Vec<String>>
  • Permissions: 实现 deno_net::NetPermissions 的结构体

RuntimeOptionsextensions 字段中

依赖

  • deno_web: 由 deno_web crate 提供
  • deno_fetch: 由 deno_fetch crate 提供

提供操作

以下操作由提供,可以通过 Deno.ops 访问

网络

  • 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

其他

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

依赖

~101MB
~2M SLoC