Crate toxiproxy_rust

Source
Expand description

Toxiproxy-Rust is a Toxiproxy client written for the Rust language. It’s designed for testing network code and its resiliency against various network issues, such as latency or unavailability (and many more).

§Setting up a test

use toxiproxy_rust::{TOXIPROXY, proxy::ProxyPack};

TOXIPROXY.populate(vec![ProxyPack::new(
    "socket".into(),
    "localhost:2001".into(),
    "localhost:2000".into(),
)]);

TOXIPROXY
    .find_and_reset_proxy("socket")
    .unwrap()
    .with_down(|| {
        /* For example:
        let result = MyService::Server.call();
        assert!(result.is_ok());
        */
    });

§Setting up a more advanced test

use toxiproxy_rust::{TOXIPROXY, proxy::ProxyPack};

TOXIPROXY.populate(vec![ProxyPack::new(
    "socket".into(),
    "localhost:2001".into(),
    "localhost:2000".into(),
)]);

TOXIPROXY
    .find_and_reset_proxy("socket")
    .unwrap()
    .with_slicer("downstream".into(), 2048, 128, 0, 0.8)
    .with_bandwidth("downstream".into(), 32, 0.5)
    .apply(|| {
        /* For example:
        let result = MyService::Server.call();
        assert!(result.is_ok());
        */
    });

Modules§

client
Main client for communicating with the Toxiproxy server.
proxy
Represents a Proxy - a connection to a service. Connection reliability can be set by specifying a Toxic on it.
toxic
Represents a Toxic - an effect on the network connection.

Structs§

TOXIPROXY
Pre-built client using the default connection address.