Skip to content

Conversation

@slfan1989
Copy link
Contributor

Which issue does this PR close?

  • Closes #.

What changes are included in this PR?

Add LZ4 compression support to Iceberg Rust using the lz4_flex crate with framed format, fully compliant with the Puffin specification.

  • Added CompressionCodec::Lz4 variant
  • Implemented compression/decompression using FrameEncoder / FrameDecoder
  • Fixed FrameEncoder::finish() bug to prevent decompression panic
  • Added unit tests verifying round-trip correctness for empty data, all-zeros, repeated bytes, etc.
  • Ensured output complies with LZ4 frame magic number requirements

Are these changes tested?

Added comprehensive unit tests. All tests pass with cargo test, confirming reduced compressed size and correct round-trip decompression.

Thanks for reviewing! Happy to add more tests or benchmarks if needed.

@slfan1989 slfan1989 marked this pull request as draft December 28, 2025 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant