ex3-ic-agent 0.24.1

Agent library to communicate with the Internet Computer, following the Public Specification.
Documentation
[package]
name = "ex3-ic-agent"
version = "0.24.1"
authors.workspace = true
edition.workspace = true
repository.workspace = true
license.workspace = true
rust-version.workspace = true
description = "Agent library to communicate with the Internet Computer, following the Public Specification."
homepage = "https://docs.rs/ic-agent"
documentation = "https://docs.rs/ic-agent"
readme = "README.md"
categories = ["api-bindings", "data-structures", "no-std"]
keywords = ["internet-computer", "agent", "icp", "dfinity"]
include = ["src", "Cargo.toml", "../LICENSE", "README.md"]

[dependencies]
async-trait = "0.1.68"
backoff = "0.4.0"
base32 = "0.4.0"
byteorder = "1.3.2"
candid = { workspace = true }
futures-util = "0.3.21"
hex = { workspace = true }
http = "0.2.6"
http-body = "0.4.5"
ic-certification = { workspace = true }
ic-verify-bls-signature = "0.1"
k256 = { version = "0.13.1", features = ["pem"] }
leb128 = "0.2.5"
mime = "0.3.16"
pkcs8 = { version = "0.10.2", features = ["std"] }
sec1 = { version = "0.7.2", features = ["pem"] }
rand = "0.8.5"
ring = { workspace = true, features = ["std"] }
serde = { workspace = true, features = ["derive"] }
serde_bytes = { workspace = true }
serde_cbor = { workspace = true }
serde_repr = "0.1.12"
sha2 = { workspace = true }
simple_asn1 = "0.6.1"
thiserror = { workspace = true }
url = "2.1.0"

[dependencies.hyper]
version = "0.14"
features = ["client", "http2", "http1"]
optional = true

[dependencies.reqwest]
version = "= 0.11.18"
default-features = false
features = ["blocking", "json", "rustls-tls", "stream"]
optional = true

[dependencies.pem]
version = "2.0.1"
optional = true

[target.'cfg(not(target_family = "wasm"))'.dependencies]
hyper-rustls = { version = "=0.24.0", features = [
    "webpki-roots",
    "http2",
], optional = true }
tokio = { version = "1.24.2", features = ["time"] }
rustls = "=0.21.1"

[target.'cfg(target_family = "wasm")'.dependencies]
getrandom = { version = "0.2", features = ["js"], optional = true }
js-sys = { version = "0.3", optional = true }
wasm-bindgen = { version = "0.2", optional = true }
wasm-bindgen-futures = { version = "0.4", optional = true }
web-sys = { version = "0.3", features = ["Window"], optional = true }
time = { workspace = true, features = ["wasm-bindgen"], optional = true }

[dev-dependencies]
serde_json = "1.0.79"

[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
tokio = { version = "1.24.2", features = ["full"] }
mockito = "1.0.2"

[target.'cfg(target_family = "wasm")'.dev-dependencies]
wasm-bindgen-test = "0.3.34"
web-sys = { version = "0.3", features = [
    "Navigator",
    "ServiceWorkerContainer",
    "ServiceWorker",
    "ServiceWorkerRegistration",
    "ServiceWorkerState",
] }

[features]
default = ["pem", "reqwest"]
reqwest = ["dep:reqwest", "dep:hyper-rustls"]
hyper = ["dep:hyper", "dep:hyper-rustls"]
ic_ref_tests = [
    "default",
] # Used to separate integration tests for ic-ref which need a server running.
wasm-bindgen = [
    "dep:js-sys",
    "dep:wasm-bindgen",
    "dep:wasm-bindgen-futures",
    "dep:getrandom",
    "dep:web-sys",
    "dep:time",
    "backoff/wasm-bindgen",
]

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
rustdoc-args = ["--cfg=docsrs"]
features = ["hyper"]