rust: switches the LZ4 compression dependency from lz4_flex to lz4-rs. This moves us from using a pure-rust lz4 implementation to C bindings. I believe this is worthwhile because lz4_flex does not support LZ4 "high compression mode". The practical reason for doing so in this PR is that lz4_flex does not expose interfaces that make it easy to build an AsyncRead adapter for it, but lz4-rs does.
rust: Adds structs to read MCAP data asynchronously in a linear stream.
Docs
Check generated rust docs for review.
Description
Adds an async RecordReaderimplementation, for reading MCAP data asynchronously. This is an optional feature, named tokio. I chose this feature flag name and this module name because this functionality is tied heavily into the Tokio ecosystem. If at some point we rebuild this to be async-executor-agnostic, we can add that functionality under a new module and feature flag name.
Changelog
lz4_flex
tolz4-rs
. This moves us from using a pure-rust lz4 implementation to C bindings. I believe this is worthwhile becauselz4_flex
does not support LZ4 "high compression mode". The practical reason for doing so in this PR is thatlz4_flex
does not expose interfaces that make it easy to build an AsyncRead adapter for it, butlz4-rs
does.Docs
Description
Adds an async
RecordReader
implementation, for reading MCAP data asynchronously. This is an optional feature, namedtokio
. I chose this feature flag name and this module name because this functionality is tied heavily into the Tokio ecosystem. If at some point we rebuild this to be async-executor-agnostic, we can add that functionality under a new module and feature flag name.