-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add K4os.Compression.LZ4.Buffers prototype #74
base: pipelines-prototype
Are you sure you want to change the base?
Conversation
I love it. You share nearly all the code between the two modes, and it seems to be truly streaming. Wonderful job, IMO. Thank you. I left you a present. Happy to talk about it. |
Outstanding!
@MiloszKrajewski We now have a reasonably good proposal for a pipe streaming based encoder and decoder, and we now need your inputs to proceed from here. Let us know what you think ! cc @AArnott |
I am not ignoring you, believe me. I just have my own branch with similar goal (see: |
This PR has a lot of good code and feel bad about not using it. |
This is a working initial prototype of
LZ4FrameEncoder
andLZ4FrameDecoder
that works usingPipeReader
andPipeWriter
.It is put in a separate
K4os.Compression.LZ4.Buffers
project as I do not have the correct csproj skillset to get this working inK4os.Compression.LZ4.Streams
because of the very old target frameworks. This currently targets .NET 6 - it probably needs to be relaxed, but I need help to accomplish this.If the target frameworks can be the same as
K4os.Compression.LZ4.Streams
then I see three proposals:K4os.Compression.LZ4.Streams
and use it as the fundamentals for the currently exported stream classes.K4os.Compression.LZ4.Streams
to accomplish the same task as 1.K4os.Compression.LZ4.Streams
and have the two different implementations.This implementation supports almost all features in a LZ4 frame, including ContentSize, block and content checksums, etc. except the dictionary field.
Feel free to make any comments and commit to this pr.
This pr replaces the previous gist https://gist.github.com/rmja/98dc7e0576c933faa0a75629b46af71c.
This pr fixes #14.
cc @MiloszKrajewski @AArnott