-
Notifications
You must be signed in to change notification settings - Fork 37
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
Improve compression support #72
Comments
This is awesome, I've been swamped with schoolwork so haven't really had time to finish up my compression addition. Is there anywhere that my help would be valued? Once this is merged into master I can look into restructuring everything to be more organized, or:
|
One thing that would be nice to have is actually streaming the input. Currently I am being cheap and just read the source into a Vec and then process it as if it was passed as an parameter. That's obviously just a crutch and needs to change so large sources can be processed with efficient memory usage. I'd hold off with doc on the encoder part for a bit, it's likely a lot will still change and keeping doc up to date can be tricky. And wrong/outdated doc is worse than no doc in my experience. Trying out SIMD for the bitreader sounds interesting, especially for the case where three numbers are read in one call. The bitreader is one of the hottest codepaths in the decoding, even small gains can have a huge impact. It also has the benefit of not depending on this branch being merged soon. The really complicated thin I'm hung up on currently is designing a good algorithm for finding the matches to generate sequences. I learned about efficiently searching strings in university but this is a bit different as the string to search in constantly changes as the data window moves. I think I found something half promising but it's annoying to implement in safe rust. I might put a pin into that an deffer this to later to get this branch into a mergeable state. Anyways do what you think sounds most fun to you :) |
@zleyyij I merged this and did some reorganizing myself. Feedback on that would be greatly appreciated. I removed all re-exports for now so the common stuff is now hidden in |
Awesome, I'll take a look tomorrow :)
…On Sat, Dec 14, 2024 at 09:17 Moritz Borcherding ***@***.***> wrote:
@zleyyij <https://github.com/zleyyij> I merged this and did some
reorganizing myself. Feedback on that would be greatly appreciated.
I removed all re-exports for now so the common stuff is now hidden in
ruzstd::encoding::xxx. These should probably come back to the top level
imports? Anyways the doc page is now much cleaner after hiding all the
internal modules :)
—
Reply to this email directly, view it on GitHub
<#72 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ASCMLYRXE5ZEYWEO3N5UDYT2FRKYDAVCNFSM6AAAAABPP7CCZKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNBTGE3TEMJWGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Here's my scratchpad: Externally facing feedback
Internal implementation feedback
|
Thanks for the feedback! Lots of good stuff :) I think the The SIMD work sounds very cool! I think swapping the bitreader based on a feature flag is fine, if the feature documents that the crate is only supported on nightly with that feature enabled |
Matcher
trait public and allow users to provide their own implementationsThe text was updated successfully, but these errors were encountered: