Skip to content

Conversation

@pmqs
Copy link

@pmqs pmqs commented Jan 12, 2019

I have an implementation for IO:Compress::Zstd and IO:Uncompress::Zstd in progress, using Compress-Zstd to handle the low-level compression/uncompression, but there are a couple of things I’m blocked on.

The exiting interface for streaming uncompression will either uncompress successfully or croak on error. I need a way of knowing when a frame has been completely uncompressed. Without that I have no way of telling if the compressed data stream has been truncated. I have a generic test harness that all the IO::Compress/Uncompress modules share. One set of tests checks that I can detect truncated content.

This change is a proof-of-concept that add the following

  1. Add a status method for the streaming interface.
    This method returns the actual value returned from the streaming API calls.
  2. Adds an isEndFrame method.
    This is the key method I need
  3. Exposes the isError & getErrorName functions from the ZSTD api.
    These make error reporting easier for me.

With the above changes I can get IO:Compress::Zstd and IO:Uncompress::Zstd to build & pass all tests.

pmqs added a commit to pmqs/IO-Compress-Zstd that referenced this pull request Mar 21, 2019
@pmqs
Copy link
Author

pmqs commented May 1, 2019

I've just received another request to add Zstd support to the IO:Compress::* modules.

Any progress at your end in enhancing Compress::Zstd?

@pmqs
Copy link
Author

pmqs commented Jul 17, 2020

Hey @spiritloose - any idea if this issue will get addressed? I'm going to fork & create a new distribution with the fix included.

Would really prefer the fix in your code, but this issue has blocked progress on getting Zstandard into the IO::* compress infrastructure.

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