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-nvidiaas the concrete NVIDIA runtime composition crate - Kept
rave-pipelinefocused 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
sysmodule is no longer public
docs.rs / Build Portability Improvements
Added docs.rs-safe no-default/stub build paths for native integration crates:
rave-ffmpegrave-tensorrtrave-nvcodecrave-runtime-nvidiarave-pipeline
This improves documentation builds and CI behavior in environments without full native
toolchains.
Publishing / CI Improvements
- Added per-crate
includelists 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-clias non-publish (publish = false) - Fixed Linux CI environment issues involving:
- OpenSSL build dependencies
pkg-configresolution- Windows-local
.cargo/config.tomloverrides 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-pipelineno longer provides the temporaryruntimecompatibility shim- Use
rave-runtime-nvidiadirectly for concrete runtime composition helpers
- Use
Notes for Users
- Use
rave-pipelinefor generic orchestration and graph contracts - Use
rave-runtime-nvidiaalongsiderave-pipelinefor the default NVIDIA runtime
stack rave-cliremains a workspace application and is not published to crates.io