Skip to main content

Wunderspec

Wunderspec

PyPI Lint Build Run Examples Convert to TLA+

Wunderspec is a Python DSL for writing and checking executable specifications.

Distributed systems often fail due to unforeseen issues: message reordering, race condition, stale observations, retry behavior, crashes and restarts, network outages, vibe code. Adding more example tests is often not enough to find these bugs before they make it to production. Specifications written in Wunderspec surface these issues early, so that teams find design flaws before they become production incidents.

This is the open-core distribution.

:clipboard: Wunderspec in 5 minutes: the Wunderspec in Five Minutes gives you a quick overview of the core concepts.

:clipboard: Cheatsheet: the Wunderspec cheatsheet summarizes the DSL and CLI in a few pages — keep it open while you work.

:bulb: Using Quint? Try this command:

uv tool install wunderspec
wunderspec convert --from=spec.qnt --to=spec.py --main=main
Wunderspec Flower

1. Wunderspec in Action

Follow Bob in his Wunderspec adventure. There, Bob writes a specification of a write-ahead log, finds a bug, replays the counterexample and fixes the specification.

2. Installation

Using uv:

uv tool install wunderspec

After installation, the CLI is available:

wunderspec --help

If you want to add Wunderspec as a dependency, just type:

uv add wunderspec
uv sync

3. Features

This open-core package includes the features marked ✅ in the Open Core column. Premium-only command names stay visible for discoverability, but those commands are not included in this package.

Feature Open Core Premium
Symbolic expression evaluator ✅ ✅
wunderspec lint ✅ ✅
wunderspec run ✅ ✅
wunderspec replay ✅ ✅
wunderspec convert ✅ ✅
wunderspec check ✅ ✅
wunderspec with-tlc ✅ ✅
wunderspec with-apalache ✅ ✅
wunderspec fuzz ❌ ✅
wunderspec rust ❌ ✅
wunderspec lean ❌ ✅

4. Release Provenance

  • Release tag: v0.137.1
  • Source commit: 2629f8b78949bbe79e03506d42495dd6558d4686

See tests/README.md for the development test log captured at release time.

5. Latest Release Notes

Changes since public release v0.136.6.

  • Add items to Map expressions.
  • Document Map.values and Map.items.

6. License

Wunderspec is distributed under the Functional Source License, Version 1.1, with an Apache 2.0 future license (FSL-1.1-ALv2). See LICENSE.

Metadata

Release files for wunderspec 0.137.1

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

Source distribution (sdist)

Source distribution for wunderspec 0.137.1
File Size Uploaded
wunderspec-0.137.1.tar.gz 4.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for wunderspec 0.137.1
File Interpreter ABI Platform
wunderspec-0.137.1-py3-none-any.whl Python 3 none any Details

Total release size: 4.5 MB

Release files / wunderspec-0.137.1.tar.gz

Download URL wunderspec-0.137.1.tar.gz
Size 4.2 MB
Tags Source
SHA-256 checksum
How to use checksums
201092ed9d87d62c16fdc5f29146faed5d8761f696f1df27d8b53bfc7e88039b
BLAKE2b-256 checksum
How to use checksums
a8052517cdac3d891441fa5cba927619b94104291fa1fc4ece0299038283cc85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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 26, 2026.

Transparency log

Release files / wunderspec-0.137.1-py3-none-any.whl

Download URL wunderspec-0.137.1-py3-none-any.whl
Size 270.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3376019654da5d0af23d1ce7021bdc6beb7de62b4b4b2c78699a1ad0be3a6b38
BLAKE2b-256 checksum
How to use checksums
519f2a41f0ffc90bbfd0b455a3649819d2512294a00f5e87e0cafbfb3b0c55ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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 26, 2026.

Transparency log
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