Skip to main content

Protocol specifications as Python code

Project description

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.

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.131.1
  • Source commit: 622d23632bea897a636483491f96c576e3c37bbe

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wunderspec-0.131.1.tar.gz (4.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wunderspec-0.131.1-py3-none-any.whl (258.2 kB view details)

Uploaded Python 3

File details

Details for the file wunderspec-0.131.1.tar.gz.

File metadata

  • Download URL: wunderspec-0.131.1.tar.gz
  • Upload date:
  • Size: 4.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for wunderspec-0.131.1.tar.gz
Algorithm Hash digest
SHA256 fc4e607943b70e22c214b409c720adabb718d4d5a389f535be9c3d5a26b66396
MD5 1f8bde8339faf8e3349d42aa9b3ce11f
BLAKE2b-256 289501b19765b92dca2020d14e7bdd5aa81cf958dfaec05c1dc4b308eab6d9a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for wunderspec-0.131.1.tar.gz:

Publisher: publish.yml on wunderspec/wunderspec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wunderspec-0.131.1-py3-none-any.whl.

File metadata

  • Download URL: wunderspec-0.131.1-py3-none-any.whl
  • Upload date:
  • Size: 258.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for wunderspec-0.131.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1df07df89eab579fb8294d430a3ce9dc64dc5706ba3189a4545b7a57c1ef2452
MD5 87d58816c16e36be699fa81a3e5226c3
BLAKE2b-256 e0b00afee37277d8247a39ee11dc12d3fb9a11f79e4da5657dd3a3dc6af8d3a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for wunderspec-0.131.1-py3-none-any.whl:

Publisher: publish.yml on wunderspec/wunderspec

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page