postgresql_embedded 0.20.2

Install and run a PostgreSQL database locally on Linux, MacOS or Windows. PostgreSQL can be bundled with your application, or downloaded on demand.
Documentation
use criterion::{Criterion, criterion_group, criterion_main};
use postgresql_embedded::Result;
use postgresql_embedded::blocking::PostgreSQL;
use std::time::Duration;

fn benchmarks(criterion: &mut Criterion) {
    bench_lifecycle(criterion).ok();
}

fn bench_lifecycle(criterion: &mut Criterion) -> Result<()> {
    criterion.bench_function("lifecycle", |bencher| {
        bencher.iter(|| {
            lifecycle().ok();
        });
    });

    Ok(())
}

fn lifecycle() -> Result<()> {
    let mut postgresql = PostgreSQL::default();
    postgresql.setup()?;
    postgresql.start()?;
    postgresql.stop()
}

criterion_group!(
    name = benches;
    config = Criterion::default()
        .measurement_time(Duration::from_secs(30))
        .sample_size(10);
    targets = benchmarks
);
criterion_main!(benches);