I would like to use xxHash from Nim:

[https://github.com/Cyan4973/xxHash](https://github.com/Cyan4973/xxHash)

It is C code with BSD 2-Clause License. So not MIT.

xxHash is very fast and generates high quality non cryptografic hashes, best 
score 10 in SMHasher test.

(First I tested clHash, but it is not tuned for very short keys currently, see 
[https://github.com/lemire/clhash/issues/3](https://github.com/lemire/clhash/issues/3)
 And it may be slower on legacy hardware.)

First problem is, that xxHash is not shipped as shared library for most Distros.

I did a first Nim test using header pragma, that works fine, but I think header 
pragma is deprecated because of no LLVM support. So what better solutions do 
exist? A pure Nim implementation? May be possible, some implementations in 
other languages exists. But would be work, I see no real benefit, and Nim 
implementation may get no updates when C code is updated. And dynlib support 
with Nimble? I have no idea how to do it properly. Should nimble download 
xxhash code from github and execute make script? That would at least require a 
C compiler, but people using LLVM may have none. Or should nimble ship 
precompiled binaries of xxhash lib?

And yes, I know there is a xxHash toy package for Nim somewhere, but that is 
nearly empty and uses header pragma.

Reply via email to