Skip to main content

mustmatch

mustmatch is a single Rust CLI for assertion pipelines and executable Markdown specs. Pipe a command's output in and assert it matches an expected text / JSON / regex contract, or run documentation-first Markdown with mustmatch test so your examples are also your tests. It ships static quality commands (lint, verify-matrix) too.

This README is itself a spec: the assertion examples below run under make spec.

Install

uv tool install mustmatch

(The install line above is documentation — mustmatch test only runs a bash block when it pipes into | mustmatch, so commands shown for reference are never executed.)

Assertion pipelines

Compare stdin against one expected value — exactly, as a substring with like, as a regex in /slashes/, or as a JSON subset.

printf 'hello world\n'                  | mustmatch like "world"
printf 'v1.2.3\n'                       | mustmatch "/^v[0-9]+[.][0-9]+[.][0-9]+$/"
printf '{"status":"ok","count":42}\n'   | mustmatch like '{"status":"ok"}'
printf 'all systems go\n'               | mustmatch not like "error"

Executable Markdown

mustmatch test PATH... runs the code blocks in your Markdown as tests. A document is the documentation a reader sees and the contract make spec enforces — at once.

$ mustmatch test spec/
...
passed

The full, runnable guide lives in spec/, one feature per file:

Topic File
CLI assertions spec/01-cli-assertions.md
Comparison modes spec/02-comparison-modes.md
Ellipsis (...) spec/03-ellipsis.md
Normalization spec/04-normalization.md
Executable Markdown & the safety model spec/05-executable-markdown.md
Console examples & streams spec/06-console-and-streams.md
Named runs spec/07-named-runs.md
Tables & scenario outlines spec/08-tables-and-outlines.md
Embedded fixture files spec/09-embedded-files.md
Contexts spec/contexts/10-contexts.md
Lifecycle hooks spec/lifecycle/11-lifecycle-hooks.md
Linting specs spec/12-lint.md
Verifying a proof matrix spec/13-verify-matrix.md
Authoring guide & runner self-test spec/14-authoring-and-self-test.md
Release smoke gate spec/15-release-smoke.md

Quality commands

mustmatch lint spec/14-authoring-and-self-test.md | mustmatch like "findings=0"

mustmatch verify-matrix DESIGN --repo-root ROOT confirms a design document's backticked file references resolve inside the repo.

Gates

make lint
make test
make spec
make smoke

make spec builds the binary and runs both the runner and every inline assertion against the build under test, so CI always exercises the current source. make smoke builds or selects a wheel, installs it into an isolated environment, and runs the package smoke document through the installed mustmatch entry point before release.

License

MIT

Metadata

Release files for mustmatch 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mustmatch 0.1.0
File Size Uploaded
mustmatch-0.1.0.tar.gz 43.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for mustmatch 0.1.0
File
mustmatch-0.1.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
mustmatch-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
mustmatch-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
mustmatch-0.1.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
mustmatch-0.1.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 6.8 MB

Release files / mustmatch-0.1.0.tar.gz

Download URL mustmatch-0.1.0.tar.gz
Size 43.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bdac3f3b36f588dd801b6c9521f2f158addd7f329d13c775b999941dd2727320
BLAKE2b-256 checksum
How to use checksums
b1447ca6f5742dc43099e4dec129158c472e63c6fc38835a5775e3c1401df05e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 8, 2026.

Transparency log

Release files / mustmatch-0.1.0-py3-none-win_amd64.whl

Download URL mustmatch-0.1.0-py3-none-win_amd64.whl
Size 1.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
efeb6adf266f5f98c53be99583611a64458984a7df5502e97188abdbb4c60217
BLAKE2b-256 checksum
How to use checksums
af687784ac40a8b1e7a0aedbcd8695d3ecbb913720654e56402c671b9c9cba3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 8, 2026.

Transparency log

Release files / mustmatch-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mustmatch-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
86c6c250578413009eed9ff591d5fa3107c9695176d418dbfc2ccae87d472e77
BLAKE2b-256 checksum
How to use checksums
ab301260a42494e3a19d91f0820e1ca9d23a7d4c1428c0ccfce56fd07e7d9b4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 8, 2026.

Transparency log

Release files / mustmatch-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mustmatch-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.4 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
f5135a5bdb43fac45217ebad723169eb92629630b931b0fdd78b763ae2468bd4
BLAKE2b-256 checksum
How to use checksums
940b7919757b9ab110f401119d3b93b15968d0186817c19ccb466a70f8412452
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 8, 2026.

Transparency log

Release files / mustmatch-0.1.0-py3-none-macosx_11_0_arm64.whl

Download URL mustmatch-0.1.0-py3-none-macosx_11_0_arm64.whl
Size 1.3 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
92e8395793d175525f241158a4833a02b00fcf889321e228973cff643eff2411
BLAKE2b-256 checksum
How to use checksums
1ca8f250355c74b95aa6098b05b211de5ca93da7996e141b3bdb098ca1188cf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 8, 2026.

Transparency log

Release files / mustmatch-0.1.0-py3-none-macosx_10_12_x86_64.whl

Download URL mustmatch-0.1.0-py3-none-macosx_10_12_x86_64.whl
Size 1.4 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
be600301724e3cac580cbe4c14d109bd9e4c41e054d63f6484199a66fa6d5ba1
BLAKE2b-256 checksum
How to use checksums
e474d52dc2957269254828271c5923e48e8b11aa4e24e5b81db138a8be186b58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

6 release files

0.0.4

10 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page