Context: uncovered while porting the MCAP CLI from Go to Rust. The Rust port implemented remote range reads with CLI-local workarounds; this tracks promoting them into reusable mcap crate APIs (requires new public crate API).
Before Rust CLI 1.0, consider moving the CLI-local coalesced summary range reads into reusable mcap crate reader APIs so HTTP(S), S3, GCS, and Azure Blob Storage backends can share tail/summary range reads instead of each transport adding its own read-ahead workaround.
- A future
mcap crate API should also make range-backed parsing of exact indexed records ergonomic without requiring callers to duplicate record parsing logic in the CLI.
- Avoid double-touching summaryless remote inputs when
--allow-remote-scan is set. Today the CLI attempts indexed discovery with a range probe and footer read before falling back to full-file materialization; a future implementation could share probe/footer state with materialization or skip indexed discovery for commands that already know they must scan.
This requires new public mcap crate API.
Context: uncovered while porting the MCAP CLI from Go to Rust. The Rust port implemented remote range reads with CLI-local workarounds; this tracks promoting them into reusable
mcapcrate APIs (requires new public crate API).Before Rust CLI 1.0, consider moving the CLI-local coalesced summary range reads into reusable
mcapcrate reader APIs so HTTP(S), S3, GCS, and Azure Blob Storage backends can share tail/summary range reads instead of each transport adding its own read-ahead workaround.mcapcrate API should also make range-backed parsing of exact indexed records ergonomic without requiring callers to duplicate record parsing logic in the CLI.--allow-remote-scanis set. Today the CLI attempts indexed discovery with a range probe and footer read before falling back to full-file materialization; a future implementation could share probe/footer state with materialization or skip indexed discovery for commands that already know they must scan.This requires new public
mcapcrate API.