hegel-core
Universal property-based testing protocol, built on Hypothesis
What it is and what it does
Hegel-core is a property-based testing library built on top of Hypothesis, implementing a universal testing protocol designed to work across multiple programming languages (Rust, Go, C++, TypeScript, and Python). It provides core functionality for generating random test data and shrinking failures down to minimal reproducible cases—the core mechanics of property-based testing. The package depends on Hypothesis for its testing engine, cbor2 for data serialization, and click for CLI support.
The library is positioned as a protocol rather than a standalone tool, meaning it aims to enable property-based testing workflows that can be shared across language boundaries. However, it is currently in beta and abandoned as of July 2026, with the repository archived. The maintainers explicitly warned during beta that breaking changes were possible. If you need property-based testing in Python, you should evaluate whether Hypothesis alone meets your needs before adopting hegel-core, given the lack of ongoing maintenance.
Use it for:
- Discovering edge cases in algorithms by generating random inputs and checking invariants hold across all cases.
- Fuzzing network protocols or data parsers to find crashes or unexpected behavior under varied input conditions.
- Cross-language testing workflows where the same property-based tests run in multiple languages via the Hegel protocol.
- Shrinking complex failing test cases to their minimal form for easier debugging and root-cause analysis.
- Validating mathematical properties or invariants in numerical code through randomized testing.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Hegel-core provides property-based testing data generation and shrinking built on Hypothesis, implementing a universal testing protocol for discovering edge cases through randomized input generation.
No, not for new projects. While the package itself has low install friction and a permissive license, it is abandoned and in beta—the repository is archived, no maintenance is active, and breaking changes were explicitly possible during beta. If you need property-based testing in Python, use Hypothesis directly instead. Only consider hegel-core if you specifically need the cross-language Hegel protocol and are willing to maintain a fork.
Install
hegel-core on PyPI
pip
pip install hegel-coreuv
uv add hegel-corepoetry
poetry add hegel-coreInstalling hegel-core
Before you install
Installation is straightforward with low friction—a pure Python wheel with minimal dependencies. However, the package is in abandoned status as of July 2026, with the repository archived and no active maintenance, so expect no bug fixes or updates going forward.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it safe to adopt from a licensing standpoint.
Quickstart
pip install hegel-core
from hypothesis import given
from hegel_core import hegel_strategy
@given(hegel_strategy())
def test_property(data):
assert data is not None
Requires Python 3.10 or later; package is in beta and may have breaking changes.
Verify before relying
- Whether the abandoned status means the protocol itself is stable or if cross-language implementations remain active.
- How the beta status and potential breaking changes affect long-term production use.
- Whether Hypothesis alone would serve your use case without the Hegel protocol layer.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — cbor2, click, hypothesis |
| Maintenance | abandoned — 67 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 228,521/month — #9,152 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: hegel_core-0.10.0-py3-none-any.whl
Keywords: testing, fuzzing, property-based-testing
Tags
More Testing packages
Pluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
virtualenvvirtualenv creates isolated Python environments…
permissive · top 100 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
pytest-asynciopytest-asyncio is a pytest plugin that enables…
permissive · top 1,000 on PyPI
pytest-json-ctrfA pytest plugin that generates test reports in…
permissive · top 1,000 on PyPI
hypothesisHypothesis is a property-based testing library…
copyleft · top 1,000 on PyPI
hypothesis-graphqlGenerates arbitrary GraphQL queries matching…
permissive · top 5,000 on PyPI
schemathesisSchemathesis generates test cases from OpenAPI…
permissive · top 5,000 on PyPI
hypothesis-jsonschemaGenerates random JSON data that conforms to a…
copyleft · top 5,000 on PyPI
boofuzzBoofuzz is a network protocol fuzzing framework…
copyleft · top 15,000 on PyPI
pytest-astropyA meta-package that bundles pytest plugins and…
permissive · top 15,000 on PyPI
atherisAtheris is a coverage-guided fuzzer for Python…
unclear · top 15,000 on PyPI
ai-edge-quantizerQuantizes LiteRT models to reduce size and…
permissive · top 15,000 on PyPI
eth-brownieBrownie is a Python framework for developing,…
permissive · top 15,000 on PyPI
pyvscPyVSC generates randomized test stimulus and…
permissive · top 15,000 on PyPI