1#![doc = include_str!("../README.md")]
2#![doc(
3 html_logo_url = "https://raw.githubusercontent.com/alloy-rs/core/main/assets/alloy.jpg",
4 html_favicon_url = "https://raw.githubusercontent.com/alloy-rs/core/main/assets/favicon.ico"
5)]
6#![cfg_attr(not(test), warn(unused_crate_dependencies))]
7#![cfg_attr(docsrs, feature(doc_cfg))]
8
9mod boxed;
10pub use boxed::{BoxTransport, IntoBoxTransport};
11
12mod dual;
13pub use dual::*;
14
15mod connect;
16pub use connect::TransportConnect;
17
18mod common;
19pub use common::Authorization;
20
21pub mod mock;
22
23mod error;
24#[doc(hidden)]
25pub use error::TransportErrorKind;
26pub use error::{HttpError, TransportError, TransportResult};
27
28mod r#trait;
29pub use r#trait::Transport;
30
31pub use alloy_json_rpc::{RpcError, RpcResult};
32pub use futures_utils_wasm::{impl_future, BoxFuture};
33
34pub mod layers;
35
36pub mod utils;
38
39pub type Pbf<'a, T, E> = futures_utils_wasm::BoxFuture<'a, Result<T, E>>;
41
42pub type TransportFut<'a, T = alloy_json_rpc::ResponsePacket, E = TransportError> = Pbf<'a, T, E>;
44
45pub type RpcFut<'a, T> = futures_utils_wasm::BoxFuture<'a, TransportResult<T>>;
47
48mod time {
50 #[cfg(target_family = "wasm")]
51 pub(crate) use wasmtimer::std::Instant;
52
53 #[cfg(not(target_family = "wasm"))]
54 pub(crate) use std::time::Instant;
55}