[package] name = "reqwest_wasi" version = "0.11.16" # remember to update html_root_url description = "higher level HTTP client library" keywords = ["http", "request", "client"] categories = ["web-programming::http-client", "wasm"] repository = "https://github.com/wasmedge/reqwest" documentation = "https://docs.rs/reqwest" authors = [ "Sean McArthur ", "Tricster ", "csh <458761603@qq.com>", ] readme = "README.md" license = "MIT OR Apache-2.0" edition = "2018" autotests = true [package.metadata.docs.rs] rustdoc-args = ["--cfg", "docsrs"] targets = ["wasm32-wasi", "wasm32-unknown-unknown"] [lib] name = "reqwest" path = "src/lib.rs" [package.metadata.playground] features = ["blocking", "cookies", "json", "multipart"] [features] default = [] # Note: this doesn't enable the 'native-tls' feature, which adds specific # functionality for it. default-tls = ["hyper-tls", "native-tls-crate", "__tls", "tokio-native-tls"] # Enables native-tls specific functionality not available by default. native-tls = ["default-tls"] native-tls-alpn = ["native-tls", "native-tls-crate/alpn"] native-tls-vendored = ["native-tls", "native-tls-crate/vendored"] rustls-tls = ["rustls-tls-webpki-roots"] rustls-tls-manual-roots = ["__rustls"] rustls-tls-webpki-roots = ["webpki-roots", "__rustls"] rustls-tls-native-roots = ["rustls-native-certs", "__rustls"] wasmedge-tls = ["wasmedge_hyper_rustls", "wasmedge_rustls_api", "__tls"] blocking = ["futures-util/io", "tokio_wasi/rt-multi-thread", "tokio_wasi/sync"] cookies = ["cookie_crate", "cookie_store"] gzip = ["async-compression", "async-compression/gzip", "tokio-util_wasi"] brotli = ["async-compression", "async-compression/brotli", "tokio-util_wasi"] deflate = ["async-compression", "async-compression/zlib", "tokio-util_wasi"] json = ["serde_json"] multipart = ["mime_guess"] trust-dns = ["trust-dns-resolver"] stream = ["tokio_wasi/fs", "tokio-util_wasi", "wasm-streams"] socks = ["tokio-socks"] # Internal (PRIVATE!) features used to aid testing. # Don't rely on these whatsoever. They may disappear at anytime. # Enables common types used for TLS. Useless on its own. __tls = [] # Enables common rustls code. # Equivalent to rustls-tls-manual-roots but shorter :) __rustls = ["hyper-rustls", "tokio-rustls", "rustls", "__tls", "rustls-pemfile"] # When enabled, disable using the cached SYS_PROXIES. __internal_proxy_sys_no_cache = [] # Sets the maximum idle connection per host allowed in the pool to 0 no-pool = [] [dependencies] base64 = "0.21" http = "0.2" url = "2.2" bytes = "1.0" serde = "1.0" serde_urlencoded = "0.7.1" tower-service = "0.3" futures-core = { version = "0.3.0", default-features = false } futures-util = { version = "0.3.0", default-features = false } # Optional deps... ## json serde_json = { version = "1.0", optional = true } ## multipart mime_guess = { version = "2.0", default-features = false, optional = true } # [target.'cfg(not(target_arch = "wasm32"))'.dependencies] # encoding_rs = "0.8" # futures-core = { version = "0.3.0", default-features = false } # futures-util = { version = "0.3.0", default-features = false } # http-body = "0.4.0" # hyper = { version = "0.14.18", default-features = false, features = ["tcp", "http1", "http2", "client", "runtime"] } # h2 = "0.3.10" # lazy_static = "1.4" # log = "0.4" # mime = "0.3.16" # percent-encoding = "2.1" # tokio = { version = "1.0", default-features = false, features = ["net", "time"] } # pin-project-lite = "0.2.0" # ipnet = "2.3" [target.'cfg(target_os = "wasi")'.dependencies] encoding_rs = "0.8" http-body = "0.4.0" hyper_wasi = { version = "0.15", default-features = false, features = ["full"] } h2_wasi = "0.3" lazy_static = "1.4" log = "0.4" mime = "0.3.16" percent-encoding = "2.1" tokio_wasi = { version = "1", default-features = false, features = [ "net", "time", ] } pin-project-lite = "0.2.0" ipnet = "2.3" once_cell = "1" # wasmedge-tls wasmedge_hyper_rustls = { version = "0.1.0", optional = true } wasmedge_rustls_api = { version = "0.1.1", optional = true } # Optional deps... ## default-tls hyper-tls = { version = "0.5", optional = true } native-tls-crate = { version = "0.2.10", optional = true, package = "native-tls" } tokio-native-tls = { version = "0.3.0", optional = true } # rustls-tls hyper-rustls = { version = "0.23", default-features = false, optional = true } rustls = { version = "0.20", features = [ "dangerous_configuration", ], optional = true } tokio-rustls = { version = "0.23", optional = true } webpki-roots = { version = "0.22", optional = true } rustls-native-certs = { version = "0.6", optional = true } rustls-pemfile = { version = "1.0", optional = true } ## cookies cookie_crate = { version = "0.16", package = "cookie", optional = true } cookie_store = { version = "0.16", optional = true } ## compression async-compression = { version = "0.3.13", default-features = false, features = [ "tokio", ], optional = true } tokio-util_wasi = { version = "0.7", default-features = false, features = [ "codec", "io", ], optional = true } ## socks tokio-socks = { version = "0.5.1", optional = true } ## trust-dns trust-dns-resolver = { version = "0.22", optional = true } # [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] # env_logger = "0.8" # hyper = { version = "0.14", default-features = false, features = ["tcp", "stream", "http1", "http2", "client", "server", "runtime"] } # serde = { version = "1.0", features = ["derive"] } # libflate = "1.0" # brotli_crate = { package = "brotli", version = "3.3.0" } # doc-comment = "0.3" # tokio = { version = "1.0", default-features = false, features = ["macros", "rt-multi-thread"] } [target.'cfg(target_os = "wasi")'.dev-dependencies] env_logger = "0.8" hyper_wasi = { version = "0.15", default-features = false, features = [ "tcp", "http1", "client", "server", "runtime", ] } serde = { version = "1.0", features = ["derive"] } libflate = "1.0" brotli_crate = { package = "brotli", version = "3.3.0" } doc-comment = "0.3" tokio_wasi = { version = "1", default-features = false, features = [ "macros", "rt", ] } [target.'cfg(windows)'.dependencies] winreg = "0.10" # wasm [target.'cfg(all(target_arch = "wasm32", not(target_os = "wasi")))'.dependencies] js-sys = "0.3.45" serde_json = "1.0" wasm-bindgen = "0.2.68" wasm-bindgen-futures = "0.4.18" wasm-streams = { version = "0.2", optional = true } [target.'cfg(all(target_arch = "wasm32", not(target_os = "wasi")))'.dependencies.web-sys] version = "0.3.25" features = [ "Headers", "Request", "RequestInit", "RequestMode", "Response", "Window", "FormData", "Blob", "BlobPropertyBag", "ServiceWorkerGlobalScope", "RequestCredentials", "File", "ReadableStream", ] [target.'cfg(all(target_arch = "wasm32", not(target_os = "wasi")))'.dev-dependencies] wasm-bindgen = { version = "0.2.68", features = ["serde-serialize"] } wasm-bindgen-test = "0.3" [[example]] name = "blocking" path = "examples/blocking.rs" required-features = ["blocking"] [[example]] name = "json_dynamic" path = "examples/json_dynamic.rs" required-features = ["json"] [[example]] name = "json_typed" path = "examples/json_typed.rs" required-features = ["json"] [[example]] name = "tor_socks" path = "examples/tor_socks.rs" required-features = ["socks"] [[example]] name = "form" path = "examples/form.rs" [[example]] name = "simple" path = "examples/simple.rs" [[test]] name = "blocking" path = "tests/blocking.rs" required-features = ["blocking"] [[test]] name = "cookie" path = "tests/cookie.rs" required-features = ["cookies"] [[test]] name = "gzip" path = "tests/gzip.rs" required-features = ["gzip"] [[test]] name = "brotli" path = "tests/brotli.rs" required-features = ["brotli"] [[test]] name = "deflate" path = "tests/deflate.rs" required-features = ["deflate"] [[test]] name = "multipart" path = "tests/multipart.rs" required-features = ["multipart"]