I would like to use xxHash from Nim:
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 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.
This might be a bit off topic, but I think Nim should have multihash in stdlib and encourage its use.
I think the IPFS and related decentralized design philosophies, including self-describing protocols (multiformats), are the future. Currently the base58 IPFS addresses start with "Qm", which indicates the multihash prefix for the algorithm (SHA-256) and length (32 bytes). They can later switch to something else without breaking everything.