autobahn-hash 0.1.0

An implementation of HighwayHash, a fast and strong SIMD hash function
Documentation
#!/usr/bin/env python3

import cbor2
import plotly.express as px
import glob
from pathlib import Path
import pandas as pd

df = []
for file in glob.glob('target/criterion/data/**/benchmark.cbor', recursive=True):
    file = Path(file)
    with open(file, 'rb') as f:
        meta = cbor2.load(f)
    with open(file.parent / meta['latest_record'], 'rb') as f:
        data = cbor2.load(f)
    
    df.append({
        'type': meta['id']['group_id'],
        'crate': meta['id']['function_id'],
        'size': meta['id']['throughput']['Bytes'],
        'mean': data['estimates']['mean']['point_estimate'],
        'lower': data['estimates']['mean']['confidence_interval']['lower_bound'],
        'upper': data['estimates']['mean']['confidence_interval']['upper_bound'],
    })

df = pd.DataFrame(df)

df['mean'] = df['size'] / df['mean'] # B/ns is also GB/s

for ty, df in df.groupby(df.type):
    df = df.sort_values("size")
    fig = px.line(df,
        x="size",
        y="mean",
        color='crate',
        log_x=True,
        range_y=[0,df['mean'].max()],
        line_shape='spline',
        labels={'mean': "Throughput (GB/s)", 'size': "Input Size (bytes)"},
        title=f"Throughput for {ty} inputs",
    )
    fig.write_image(f"assets/{ty}.png", scale=2)