Metadata-Version: 2.4
Name: openentropy
Version: 0.12.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Scientific/Engineering
Classifier: Typing :: Typed
Summary: Your computer is a hardware noise observatory. Harvests entropy from 45 unconventional hardware sources.
Keywords: entropy,randomness,hardware,noise,TRNG,security,QRNG,rust
Home-Page: https://github.com/amenti-labs/openentropy
Author: Amenti Labs
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://github.com/amenti-labs/openentropy/tree/main/docs
Project-URL: Homepage, https://github.com/amenti-labs/openentropy
Project-URL: Issues, https://github.com/amenti-labs/openentropy/issues
Project-URL: Repository, https://github.com/amenti-labs/openentropy

# openentropy (Python)

Hardware entropy for Python, backed by Rust (PyO3 + maturin build).

OpenEntropy harvests randomness from physical noise sources on your machine (timing jitter, thermal effects, scheduler variance, I/O timing, and more), then exposes:

- `detect_available_sources()` for source discovery
- `get_source_bytes()` and `get_source_raw_bytes()` for single-source sampling
- `get_random_bytes()` for conditioned output
- `get_bytes(..., conditioning="raw|vonneumann|sha256")` for research/analysis workflows
- `run_all_tests()` + `calculate_quality_score()` for statistical checks

## Install

```bash
pip install openentropy
```

## Quick start

```python
from openentropy import EntropyPool, detect_available_sources

sources = detect_available_sources()
print(f"{len(sources)} sources available")

pool = EntropyPool.auto()
source = sources[0]["name"]
data = pool.get_source_bytes(source, 64, conditioning="sha256")
print(data.hex())
```

## Docs

- Project: https://github.com/amenti-labs/openentropy
- Python SDK docs: https://github.com/amenti-labs/openentropy/blob/main/docs/PYTHON_SDK.md

