Quickstart
Discover Available Sources
Section titled “Discover Available Sources”use openentropy_core::detect_available_sources;
let sources = detect_available_sources();println!("{} entropy sources available", sources.len());for source in &sources { println!(" - {}", source.name);}from openentropy import detect_available_sources
sources = detect_available_sources()print(f"{len(sources)} entropy sources available")openentropy scanopenentropy benchGet Random Bytes
Section titled “Get Random Bytes”use openentropy_core::{ConditioningMode, EntropyPool};
let pool = EntropyPool::auto();let source = pool.source_names()[0].clone();let bytes = pool.get_source_bytes(&source, 256, ConditioningMode::Sha256).unwrap();from openentropy import EntropyPool, detect_available_sources
sources = detect_available_sources()pool = EntropyPool.auto()data = pool.get_source_bytes(sources[0]["name"], 256, conditioning="sha256")openentropy stream --format hex --bytes 64openentropy stream --format base64 --bytes 256Analyze Entropy
Section titled “Analyze Entropy”use openentropy_core::{EntropyPool, full_analysis};
let pool = EntropyPool::auto();let source = pool.source_names()[0].clone();let data = pool.get_source_raw_bytes(&source, 5000).unwrap();let analysis = full_analysis(&source, &data);println!("Shannon entropy: {:.4} bits/byte", analysis.shannon_entropy);from openentropy import EntropyPool, detect_available_sources, full_analysis
sources = detect_available_sources()source = sources[0]["name"]pool = EntropyPool.auto()data = pool.get_source_raw_bytes(source, 5000)result = full_analysis(source, data)print(f"Shannon entropy: {result['shannon_entropy']:.4f} bits/byte")openentropy analyze --profile securityopenentropy analyze --profile deep --output analysis.jsonCLI Common Workflows
Section titled “CLI Common Workflows”If you are starting from the CLI, these are the most common patterns and flags.
# Discover sources (with runtime context)openentropy scanopenentropy scan --telemetry
# Interactive TUI dashboardopenentropy monitoropenentropy monitor --telemetry
# Benchmark all fast sources vs a specific sourceopenentropy benchopenentropy bench all --profile deep --output bench.jsonopenentropy bench clock_jitter --rank-by throughput
# Stream bytes (all sources pooled) vs specific source namesopenentropy stream --format hex --bytes 64openentropy stream clock_jitter denormal_timing --format raw --bytes 1024
# Analysis profiles + explicit togglesopenentropy analyze --profile securityopenentropy analyze --profile deep --output analysis.jsonopenentropy analyze --entropy --chaos --cross-correlation --output analysis.json
# Record all sources vs selected source, with optional calibrationopenentropy record all --duration 1m --analyze --telemetryopenentropy record qcicada --calibrate --duration 5m
# Session workflowsopenentropy sessionsopenentropy sessions sessions/<id> --profile deep --trials --output session.jsonopenentropy compare sessions/<id-a> sessions/<id-b> --profile deep --output comparison.jsonNext Steps
Section titled “Next Steps”- Python SDK Reference — full Python API
- Python Quick Reference — common workflows
- Rust SDK Reference — full Rust API
- Rust Quick Reference — common workflows
- CLI Reference — all commands and flags
- Concepts: Entropy Sources — all 63 sources explained
- Choose Your Path — role-based navigation