Crate waterfalls_client

Crate waterfalls_client 

Source
Expand description

An extensible blocking/async Waterfalls client

This library provides an extensible blocking and async Waterfalls client to query Waterfalls’s backend.

The library provides the possibility to build a blocking client using minreq and an async client using reqwest. The library supports communicating to Waterfalls via a proxy and also using TLS (SSL) for secure communication.

§Usage

You can create a blocking client as follows:

use waterfalls_client::Builder;
let builder = Builder::new("https://blockstream.info/testnet/api");
let blocking_client = builder.build_blocking();

Here is an example of how to create an asynchronous client.

use waterfalls_client::Builder;
let builder = Builder::new("https://blockstream.info/testnet/api");
let async_client = builder.build_async();

§Features

By default the library enables all features. To specify specific features, set default-features to false in your Cargo.toml and specify the features you want. This will look like this:

waterfalls-client = { version = "*", default-features = false, features = ["blocking"] }

  • blocking enables minreq, the blocking client with proxy.
  • blocking-https enables minreq, the blocking client with proxy and TLS (SSL) capabilities using the default minreq backend.
  • blocking-https-rustls enables minreq, the blocking client with proxy and TLS (SSL) capabilities using the rustls backend.
  • blocking-https-native enables minreq, the blocking client with proxy and TLS (SSL) capabilities using the platform’s native TLS backend (likely OpenSSL).
  • blocking-https-bundled enables minreq, the blocking client with proxy and TLS (SSL) capabilities using a bundled OpenSSL library backend.
  • async enables reqwest, the async client with proxy capabilities.
  • async-https enables reqwest, the async client with support for proxying and TLS (SSL) using the default reqwest TLS backend.
  • async-https-native enables reqwest, the async client with support for proxying and TLS (SSL) using the platform’s native TLS backend (likely OpenSSL).
  • async-https-rustls enables reqwest, the async client with support for proxying and TLS (SSL) using the rustls TLS backend.
  • async-https-rustls-manual-roots enables reqwest, the async client with support for proxying and TLS (SSL) using the rustls TLS backend without using its the default root certificates.

Re-exports§

pub use async::Sleeper;
pub use blocking::BlockingClient;
pub use async::AsyncClient;
pub use api::*;

Modules§

api
async
Waterfalls by way of reqwest HTTP client.
blocking
Waterfalls by way of minreq HTTP client.

Structs§

Builder

Enums§

Error
Errors that can happen during a request to Waterfalls servers.

Constants§

RETRYABLE_ERROR_CODES
Response status codes for which the request may be retried.