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.

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

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

💡 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.3
  • Source commit: be86a4dd5da2668b37f5287a80ab13ef025b645c

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

5. Latest Release Notes

Changes since public release v0.137.1.

  • Fix AST pickle loading that could execute arbitrary code through builtins.eval and other globals. Allow only explicit AST and sort classes and the internal AST enums; reject pickle extensions that bypass the class allowlist.
  • Deprecate save_ast and load_ast in favor of wunderspec.transfer, planned for v0.138.0. Load pickle files only if you produced them yourself.

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.3

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.3
File Size Uploaded
wunderspec-0.137.3.tar.gz 4.3 MB Details

Built distribution (wheel)

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

Total release size: 4.5 MB

Release files / wunderspec-0.137.3.tar.gz

Download URL wunderspec-0.137.3.tar.gz
Size 4.3 MB
Tags Source
SHA-256 checksum
How to use checksums
6e7abc79ef88a7af3b878b4e43d01e35f8cd7fc4a2ca54566a32bc2df0025be2
BLAKE2b-256 checksum
How to use checksums
5cef7aa53493f239d217dce445bd38571d9f49e216420b67fc137e50ba20aa29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Oct 5, 2026.

Transparency log

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

Download URL wunderspec-0.137.3-py3-none-any.whl
Size 273.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc7dc0ad7a88254839f3e528b31adc1b4cd6b6228d55e8bef0b4b1d95d990a99
BLAKE2b-256 checksum
How to use checksums
62013aba7f4f2a4cde25caea2f220e23c9e151d130ae2a5a7687ccb0864612c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Oct 5, 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