Crate stubr[][src]

This crate proposes a reimplementation of Wiremock. Its aims at converting Wiremock stubs into wiremock-rs mocks.

use it

use stubr::{Stubr, Config};
use surf;

async fn main() {
    // supply a directory containing json stubs. Invalid files are just ignored
    let srv = Stubr::start("tests/stubs").await;
    // or just mount a single file
    let srv = Stubr::start("tests/stubs/ping.json").await;
    // or configure it
    let srv = Stubr::start_with("tests/stubs", Config { port: Some(8080), ..Default::default() }).await;
    // can also be used in a blocking way
    let srv = Stubr::start_blocking("tests/stubs");
    let srv = Stubr::start_blocking_with("tests/stubs", Config { port: Some(8080), ..Default::default() });

    // use '.uri()' method to get server address


A Stubr server can be configured globally thanks to Config struct.

use stubr::Config;
let config = Config {
    // server port, defaults to random
    port: Some(8080),
    // enable verbose logs
    verbose: Some(true),
    // global delay in milliseconds. Supersedes any locally defined one.
    global_delay: Some(2000),
    // delay in milliseconds added to any locally defined one. Simulates network latencies.
    latency: Some(2000),



Stubr server configuration.


Allows running a Wiremock mock server from Wiremock stubs. Delegates runtime to wiremock-rs.