add new experimental xxh3 hash algorithm#39
Conversation
|
Thanks! Heh, I've had the XXH3 tab open in my browser ever since I read about it on Hacker News, but I've been too busy to act on it. 😉 Can you tell me a little about the process you followed to port the code over? When I did the original version, I basically copied over the C code into a Rust file and iterated until the code compiled (then iterated until the tests passed!). Based on some of the names, it looks like you might have followed the same process. I'm also interested in knowing what your usecase(s) are for XXH3, if you are able to share about them. The code is quite dense, so it will probably take me a while to review it. Please feel free to ping me every week or so if I haven't otherwise shown any signs of life. /cc @quark-zju, in case you are interested. |
|
Thanks for tagging me. We're interested. However, it is not quite ready for on-disk format (our main usecase) yet, according to README:
We definitely want to switch once it gets stabilized 😃 |
|
Sure, I use similar process to port the code, just rename some C style name or extract some Trait as Rust style. So, you can review the code base on C code side by side. I'm working in a network security company, so we have a lot of scenes which need high performance (high throughput and low latency) hash algorithm, that's why I'm trying to evaluate and port T1HA and XXH3, I also maintain some experimental fasthash with C binding. Thanks |
|
I just compared |
|
You asked what the use-cases are for using |
shepmaster
left a comment
There was a problem hiding this comment.
I think it's time to go ahead and merge this. I'll be honest and say that I haven't fully grokked the new algorithm (to the level I'd like), but my skimming seemed fine.
This is about a year old, so that seems fine.
|
@flier @quark-zju please let me know if either of you would be interested in becoming a co-maintainer! |
|
@shepmaster Sure, I could handle issues about |
|
FWIW the "stable" xxh3 algorithm was just released, suitable for on-disk use etc. https://github.com/Cyan4973/xxHash/releases/tag/v0.8.0 It's worth verifying that this implementation matches the final version. |
Add new experimental xxh3 hash algorithm which was optimized for small key and also support AVX2/SSE2 for large key.
core::hash::Hashercore::hash::BuildHasherdigest::Digestserde::{Deserialize, Serialize}criterionWhat am I missing?
Thanks