kermit-bench 0.1.1

Benchmark definitions, discovery, and caching for Kermit
Documentation
# kermit-bench

Benchmark definitions, discovery, and caching for the Kermit workspace. Reads YAML benchmark definitions under `benchmarks/`, validates them, and lazily downloads their relation files to a platform cache (`~/.cache/kermit/benchmarks/` on Linux).

## Modules

- [`definition`]src/definition.rs — Serde types for the YAML schema (`BenchmarkDefinition`, `RelationSource`, `QueryDefinition`) and [`BenchmarkDefinition::validate`].
- [`discovery`]src/discovery.rs — loads definitions from a workspace root: `load_benchmark`, `load_all_benchmarks`, `list_benchmarks`.
- [`cache`]src/cache.rs`ensure_cached`, `is_cached`, `clean_benchmark`, `clean_all`, plus path helpers.
- [`error`]src/error.rs — the `BenchError` enum used throughout.

## YAML schema

See the workspace [`benchmarks/README.md`](../benchmarks/README.md) for the full schema and examples. In brief:

```yaml
name: triangle
description: Triangle query over a single edge relation
relations:
  - name: edge
    url: https://example.com/edge.parquet
queries:
  - name: triangle
    description: All triangles in the graph
    query: T(X, Y, Z) :- edge(X, Y), edge(Y, Z), edge(X, Z).
```

## Relationship to other crates

Standalone — `kermit-bench` has no workspace dependencies. The CLI binary in [`kermit`](../kermit) consumes it to drive `bench run`, `bench list`, `bench fetch`, and `bench clean`.