187次重大发布
新 0.190.0 | 2024年8月22日 |
---|---|
0.188.0 | 2024年7月31日 |
0.167.0 | 2024年3月28日 |
0.153.0 | 2023年12月21日 |
0.12.0 | 2020年11月23日 |
#110 in HTTP客户端
4,233 每月下载量
在 52 个crate中使用 (直接使用 19 个)
340KB
9K SLoC
deno_fetch
此crate实现了Fetch API。
规范: https://fetch.spec.whatwg.org/
使用示例
从javascript,包含扩展的源代码,并将以下属性分配给全局作用域
import * as headers from "ext:deno_fetch/20_headers.js";
import * as formData from "ext:deno_fetch/21_formdata.js";
import * as request from "ext:deno_fetch/23_request.js";
import * as response from "ext:deno_fetch/23_response.js";
import * as fetch from "ext:deno_fetch/26_fetch.js";
import * as eventSource from "ext:deno_fetch/27_eventsource.js";
// Set up the callback for Wasm streaming ops
Deno.core.setWasmStreamingCallback(fetch.handleWasmStreaming);
Object.defineProperty(globalThis, "fetch", {
value: fetch.fetch,
enumerable: true,
configurable: true,
writable: true,
});
Object.defineProperty(globalThis, "Request", {
value: request.Request,
enumerable: false,
configurable: true,
writable: true,
});
Object.defineProperty(globalThis, "Response", {
value: response.Response,
enumerable: false,
configurable: true,
writable: true,
});
Object.defineProperty(globalThis, "Headers", {
value: headers.Headers,
enumerable: false,
configurable: true,
writable: true,
});
Object.defineProperty(globalThis, "FormData", {
value: formData.FormData,
enumerable: false,
configurable: true,
writable: true,
});
然后从rust,在您的 RuntimeOptions
的 extensions
字段中提供 deno_fetch::deno_fetch::init_ops_and_esm<Permissions>(Default::default())
其中
- Permissions: 实现
deno_fetch::FetchPermissions
的结构体 - Options: 实现
deno_fetch::Options
,它实现了Default
依赖关系
- deno_webidl: 由
deno_webidl
crate 提供 - deno_web: 由
deno_web
crate 提供 - deno_url: 由
deno_url
crate 提供 - deno_console: 由
deno_console
crate 提供
提供的操作
以下操作提供,可以通过 Deno.ops
访问
- op_fetch
- op_fetch_send
- op_fetch_response_upgrade
- op_utf8_to_byte_string
- op_fetch_custom_client
依赖关系
~110MB
~2.5M SLoC