Skip to content

v0.4.0

Latest

Choose a tag to compare

@CalvinSturm CalvinSturm released this 26 Feb 12:40
· 1 commit to main since this release

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