Releases: Itz-Agasta/pinray
Releases · Itz-Agasta/pinray
Release list
pinray 0.2.4 — Minor docs and crates.io tweaks
pinray 0.2.2 — Stride fix, reachable docs, agent-friendly reference
Small follow-up to 0.2.0 - no breaking changes, all additive.
Highlights
- Fixed a real silent-wrong bug:
VideoFrame.stridecan exceed the tightly-packed row size, and copyingFrameData::Hostbytes directly into arawvideopipe or encoder skewed every row after the first. AddedVideoFrame::to_tight_bytes()andPixelFormat::bytes_per_pixel()to fix it at the API level. - The getting-started guide is now the docs.rs front page (
include_str!'d into crate-level docs), instead of living only indocs/where docs.rs visitors never saw it. - Documented the frame-pacing footgun (declared constant fps vs push-driven actual capture cadence desyncs muxed audio/video) with a worked example.
- Audio-only capture now has its own first-class example instead of a one-line mention, plus an explicit callout that
AudioCapture::Microphoneisn't implemented on any backend yet (.build()fails eagerly withPinrayError::Unsupported). - Clarified why the docs.rs page redirects to a fixed target (no libpipewire on their Linux builders) and linked
docs.rs/pinray-coreas the always-correct, target-independent type reference. - Added
llms.txtat the repo root - a reference checked directly againstcrates/core/src/*.rs, for agents/tools integrating the crate.
Upgrading
Drop-in - no API removed or changed, only additions.
pinray 0.2.0 — Native Screen & System Audio Capture Across Linux, macOS, and Windows
Pinray 0.2.0 is the first feature-complete release, bringing native video capture and system audio support across Linux, macOS, and Windows through a unified Rust API.
Highlights
- Native display and window capture across all desktop platforms.
- System audio capture on Linux, macOS, and Windows.
- Consistent timestamps for audio/video synchronization.
- Improved documentation, examples, and CI.
Platform Support
Windows
- DXGI Desktop Duplication backend for high-performance display capture.
- Windows Graphics Capture (WGC) backend for window capture with automatic fallback.
- WASAPI shared-mode loopback for system audio capture.
- Shared boot-relative timestamps across audio and video.
macOS
- ScreenCaptureKit backend for display and window capture.
- System audio capture through
SCStream. - Improved screen-recording permission handling.
- Boot-relative timestamps with optional BGRA → RGBA conversion.
Linux
- Native X11 backend for display and window capture.
- PipeWire system audio capture.
- Shared monotonic timestamps for synchronized audio and video.
Core Improvements
- Added new backend kinds:
WindowsDxgiWindowsWgcWindowsWasapiLinuxX11LinuxPipeWireAudioMacosSckit
- Improved session muxing to prevent audio starvation.
Some(Duration::ZERO)is now guaranteed to perform a non-blocking poll.
Documentation & CI
- New getting-started guide and platform support matrix.
- Expanded rustdoc with runnable examples.
- CI now runs on Linux, macOS, and Windows.
- Fixed docs.rs builds.
⚠️ Breaking Changes
BackendKindandBackendPreferencegained new variants.- Timestamp semantics are now explicitly defined per platform. Consumers should compare timestamp deltas rather than absolute values across machines.
Thanks to everyone who tested Pinray during the 0.1.x releases! Feedback, bug reports, and contributions are always welcome.


