01 · Source
biochef-recipes
YAML source of truth. Each tool is a biochef.yaml file declaring inputs, runtime, and version.
Architecture
Four pieces ship today: YAML recipes in Git, the Hub CI that signs and publishes, the BioChef Registry, and the static web app that runs every tool as WebAssembly in your browser.
Shipped today
Four stations, left to right. Every artifact is content-addressable; every step is signed.
01 · Source
YAML source of truth. Each tool is a biochef.yaml file declaring inputs, runtime, and version.
02 · Build
CI on GitHub Actions: validate, build to WASM, run golden tests, generate SBOM and SLSA, sign with cosign.
03 · Distribute
Content-addressable OCI bundles at registry.biochef.app: bundle.json, WASM/JS layers, SBOM, signature.
04 · Runtime
Static SPA fetches tools by digest, verifies the signature, and runs them as WebAssembly inside your browser tab.
Every artifact is content-addressable · every step is signed
Deep dive
Open each card to see what biochef-recipes, the Hub CI, the Registry, and the web app each do.
Recipes declare tools/workflows; Hub validates, signs, and bundles them for Registry.
index.json.biochef-recipes under recipes/<tool>/biochef.yaml; validate before opening a PR.biochef-hub/.github/workflows/validate-recipes.yml (PR validation) and publish-recipes.yml (build + publish on merge).apiVersion: v1
id: app.biochef.wgsim
name: wgsim
description: Simulate NGS reads from a reference FASTA.
version: 0.3.1-bc.1
homepage: https://github.com/lh3/wgsim
license:
spdx: MIT
files: [LICENSE]
source:
repo: https://github.com/lh3/wgsim
version: "0.3.1"
status: experimental
build:
wasm:
strategy: emscripten
runtime:
modes: [wasm, remote]
operations:
- id: wgsim.simulate
name: Simulate (wgsim)
bin: wgsim
description: Simulate paired-end reads
io:
inputs:
- { name: ref, types: [FASTA], mode: file }
outputs:
- { name: out1, types: [FASTQ], mode: file }
- { name: out2, types: [FASTQ], mode: file }
parameters:
- { name: num_pairs, type: integer, flag: -N }
- { name: seed, type: integer, flag: -S }
The BioChef Registry, live at registry.biochef.app, stores signed OCI artifacts (bundle.json + WASM/JS layers + SBOM) and the signed index.json that lists every published tool by digest.
index.json with cosign.index.json as the source of truth for what is publishable.The BioChef web app, a static React/Webpack SPA, runs every published bioinformatics tool entirely in the browser via WebAssembly. Has a Tools page for single-tool runs and a Workflow page for DAG-style chains.
npm run build-wasm). Hub CI compiles new recipes with Emscripten 4.0.18.{
"runtime": "wasm",
"tool": "gto.fastq.to.fasta@1.6.3-bc.1",
"verify": true,
"source": "https://registry.biochef.app/.../sha256:..."
}