ignix 0.3.2

High-performance Redis-compatible key-value store built with Rust
Documentation
use bytes::BytesMut;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use ignix::*;

fn bench_resp_parse(c: &mut Criterion) {
    let mut group = c.benchmark_group("resp");
    group.bench_function("parse_many_1k", |b| {
        let mut buf = BytesMut::new();
        for i in 0..1000 {
            buf.extend_from_slice(
                format!(
                    "*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n${}\r\nval{}\r\n",
                    3 + i.to_string().len(),
                    i
                )
                .as_bytes(),
            );
        }
        b.iter(|| {
            let mut tmp = buf.clone();
            let mut out = Vec::new();
            protocol::parse_many(&mut tmp, &mut out).unwrap();
            black_box(out.len());
        });
    });
    group.finish();
}

criterion_group!(benches, bench_resp_parse);
criterion_main!(benches);