uhash_prover/lib.rs
1//! UniversalHash solver backends (CPU/GPU).
2//!
3//! The [`Solver`] trait provides a backend-agnostic interface for proof-of-work
4//! computation. Enable feature flags to select backends:
5//!
6//! - `cpu` (default) — multi-threaded CPU solver
7//! - `gpu-cuda` — NVIDIA CUDA solver
8//! - `gpu-metal` — Apple Metal solver (macOS only)
9//! - `gpu-opencl` — OpenCL solver (AMD/Intel/Apple GPUs)
10//! - `gpu-wgpu` — WGPU solver (cross-platform via WebGPU)
11
12pub mod config;
13pub mod solver;
14
15#[cfg(feature = "cpu")]
16pub mod cpu;
17
18pub mod gpu;
19
20pub use config::ProverConfig;
21pub use solver::{ProofResult, Solver};
22
23// Backward-compatible re-exports
24#[cfg(feature = "gpu-cuda")]
25pub use gpu::cuda as cuda_miner;
26#[cfg(all(feature = "gpu-metal", target_os = "macos"))]
27pub use gpu::metal as metal_miner;
28#[cfg(feature = "gpu-opencl")]
29pub use gpu::opencl as opencl_solver;
30#[cfg(feature = "gpu-wgpu")]
31pub use gpu::wgpu as wgpu_solver;