photon-ring 3.0.0

Ultra-low-latency SPMC/MPMC pub/sub using stamped ring buffers. Formally sound with atomic-slots feature. no_std compatible.
Documentation
# Roadmap

Shipped work lives in [CHANGELOG.md](CHANGELOG.md). This file tracks what is
**planned but not yet shipped**. Nothing here is a commitment or a date — it is
the current wish list, roughly in priority order.

## Performance & platform

- NUMA-aware ring allocation via `set_mempolicy` at construction time, and a
  multi-socket Xeon benchmark quantifying pinned vs unpinned placement.
- RISC-V `WRS` (wait-on-reservation-set) as a `WaitStrategy` backend where available.

## Async

- Event-driven wakeup for `photon-ring-async`, so an idle `AsyncSubscriber`
  parks instead of holding a core. Needs a waker registry on the ring and a
  publish-side check (one relaxed load when nobody waits), plus a loom model
  of the register-versus-publish race. Until then the crate is honest about
  being a polling adapter.

## Observability

- Optional RDTSC-stamped latency histogram on the receive path.
- A Prometheus / StatsD export example built on `photon-ring-metrics`
  (the crate stays framework-agnostic; the exporter lives in an example).

## Verification

- Loom model that drives the real ring types via `cfg(loom)`, not just the
  standalone MPMC cursor model.
- Property-based testing with `proptest` / `cargo-fuzz`.

## Examples

- DPDK → Photon Ring ingest pipeline.
- Solarflare `ef_vi` → Photon Ring fan-out.

## Writing

- Complete the technical report (`docs/technical-report.md`) into a full paper
  and submit to a systems venue.