Skip to content

Releases: CalvinSturm/rave

v0.4.0

26 Feb 12:40

Choose a tag to compare

v0.4.0

This release resets and clarifies the public rave-* crate boundaries for crates.io
and improves publishability, docs.rs compatibility, and CI reliability.

Highlights

  • Clarified crate responsibilities across the workspace
  • Added rave-runtime-nvidia as the concrete NVIDIA runtime composition crate
  • Kept rave-pipeline focused on orchestration and graph/runtime contracts
  • Removed app-specific functionality from published core crates
  • Improved crates.io packaging hygiene and docs.rs compatibility
  • Hardened CI for cross-platform build portability (Linux/OpenSSL/pkg-config/FFmpeg env
    handling)

New Crate

rave-runtime-nvidia

Concrete runtime composition layer for the default NVIDIA stack:

  • rave-cuda (CUDA kernels / stream helpers)
  • rave-tensorrt (TensorRT inference backend)
  • rave-ffmpeg (container probe/demux/mux)
  • rave-nvcodec (NVDEC/NVENC)

Exports runtime setup and wiring helpers such as:

  • runtime preparation
  • input resolution/probing
  • decoder creation
  • encoder creation

Crate Boundary / API Cleanup

rave-pipeline

  • Refocused on orchestration and graph/runtime contracts
  • Backend-heavy paths are feature-gated
  • Temporary compatibility runtime shim removed to avoid crates.io publish dependency
    cycles

rave-core

  • Backend-specific ORT error conversion is now feature-gated (ort-errors)
  • Dependency/API surface tightened for publishability

rave-cuda

  • Removed non-core exports from public API surface
  • sys module is no longer public

docs.rs / Build Portability Improvements

Added docs.rs-safe no-default/stub build paths for native integration crates:

  • rave-ffmpeg
  • rave-tensorrt
  • rave-nvcodec
  • rave-runtime-nvidia
  • rave-pipeline

This improves documentation builds and CI behavior in environments without full native
toolchains.

Publishing / CI Improvements

  • Added per-crate include lists for cleaner crates.io packages
  • Added CI checks for:
    • package file listing
    • docs.rs-style compatibility checks
    • tag-triggered publish dry-run validation
  • Marked rave-cli as non-publish (publish = false)
  • Fixed Linux CI environment issues involving:
    • OpenSSL build dependencies
    • pkg-config resolution
    • Windows-local .cargo/config.toml overrides leaking into Linux builds
  • Adjusted CI clippy configuration to avoid failing on non-blocking rustc warning lints
    and MSRV compatibility lint noise

Breaking Changes

  • Public crate boundaries and feature layout were reworked for cleaner separation
  • rave-pipeline no longer provides the temporary runtime compatibility shim
    • Use rave-runtime-nvidia directly for concrete runtime composition helpers

Notes for Users

  • Use rave-pipeline for generic orchestration and graph contracts
  • Use rave-runtime-nvidia alongside rave-pipeline for the default NVIDIA runtime
    stack
  • rave-cli remains a workspace application and is not published to crates.io

RAVE v0.2.1 - Strict Policy Hardening & Loader Reliability

22 Feb 18:26

Choose a tag to compare

RAVE v0.2.1

Highlights

This patch release hardens strict-mode guarantees, improves loader reliability on Linux/WSL, and stabilizes non-GPU CI behavior while preserving existing runtime behavior for normal profiles.

What Changed

Strict policy and validation hardening

  • Centralized strict profile wiring so production_strict behavior is consistent across command paths.
  • Added policy snapshot output for upscale, benchmark, and validate (additive JSON fields only).
  • Enforced determinism policy in strict mode: required hash paths now fail clearly when unavailable.
  • Enforced strict no-host-copies capability: strict mode fails fast if host-copy auditing is disabled/unavailable.

No-host-copies and pipeline boundary auditing

  • Added stage-level no-host-copies sentinel checks across decode/preprocess/inference/encode boundaries.
  • Added stable audit status/reason reporting in validation output.

Config guardrails

  • Added shared batch-config validation and fail-fast behavior for unsupported micro-batching.
  • max_batch > 1 is now rejected with actionable messaging until micro-batching is implemented.

Linux/WSL loader robustness

  • Included validate in Linux ORT loader re-exec gating.
  • Centralized re-exec gate logic with unit tests.
  • Refactored ORT provider directory resolution into testable logic with improved diagnostics.

Link/load stability for non-GPU builders

  • Removed hard CUDA link-time assumptions in CLI/core/cuda paths by runtime-loading CUDA driver symbols where needed.
  • Added CI-safe strict validation path on non-GPU runners using mock mode.

FFmpeg state-machine hardening

  • Added deterministic permutation/property tests for BSF EAGAIN/EOF/flush-drain handling.
  • Fixed clippy issues in new permutation tests.

Dependency and process hygiene

  • Tightened crate boundary policy (check_deps) by removing unused allowed edges.
  • Added unsafe-boundary audit checklist and opt-in sanitizer workflow.
  • Restored executable bits for docs/deps check scripts used in CI.

CI/Tooling updates

  • Ubuntu CI now installs required FFmpeg development packages.
  • Strict validate fixture runs with audit-no-host-copies enabled.
  • Added publishing helper script and release wiring for crate version 0.2.1.

Published crates (0.2.1)

  • rave-core
  • rave-cuda
  • rave-ffmpeg
  • rave-nvcodec
  • rave-tensorrt
  • rave-pipeline
  • rave-cli

Notes

  • production_strict is intentionally stricter and may fail where earlier builds tolerated degraded paths.
  • Non-strict/default profile behavior remains unchanged.