Class Meow


  • public class Meow
    extends java.lang.Object
    Native bindings to Meow hash, an extremely fast non-cryptographic hash.

    Q: What is it?
    A: Meow is a 128-bit non-cryptographic hash that operates at high speeds on x64 and ARM processors that provide AES instructions. It is designed to be truncatable to 256, 128, 64, and 32-bit hash values and still retain good collision resistance.

    Q: What is it GOOD for?
    A: Quickly hashing any amount of data for comparison purposes such as block deduplication or change detection. It is extremely fast on all buffer sizes, from one byte to one gigabyte and up.

    Q: What is it BAD for?
    A: Anything security-related. It should be assumed that it provides no protection from adversaries whatsoever. It is also not particularly fast on processors that don't support AES instructions (eg., non-x64/ARM processors).

    Q: Why is it called the "Meow hash"?
    A: It is named after a character in Meow the Infinite.

    • Method Detail

      • nMeowU64From

        public static long nMeowU64From​(long Hash)
      • MeowU64From

        public static long MeowU64From​(MeowHash Hash)
      • nMeowU32From

        public static int nMeowU32From​(long Hash)
      • MeowU32From

        public static int MeowU32From​(MeowHash Hash)
      • nMeowHashesAreEqual

        public static int nMeowHashesAreEqual​(long A,
                                              long B)
      • MeowHashesAreEqual

        public static boolean MeowHashesAreEqual​(MeowHash A,
                                                 MeowHash B)
      • nMeowHash_Accelerated

        public static void nMeowHash_Accelerated​(long Seed,
                                                 long TotalLengthInBytes,
                                                 long SourceInit,
                                                 long __result)
      • MeowHash_Accelerated

        public static MeowHash MeowHash_Accelerated​(long Seed,
                                                    java.nio.ByteBuffer SourceInit,
                                                    MeowHash __result)
      • MeowHash_Accelerated

        public static MeowHash MeowHash_Accelerated​(long Seed,
                                                    java.nio.ShortBuffer SourceInit,
                                                    MeowHash __result)
      • MeowHash_Accelerated

        public static MeowHash MeowHash_Accelerated​(long Seed,
                                                    java.nio.IntBuffer SourceInit,
                                                    MeowHash __result)
      • MeowHash_Accelerated

        public static MeowHash MeowHash_Accelerated​(long Seed,
                                                    java.nio.LongBuffer SourceInit,
                                                    MeowHash __result)
      • MeowHash_Accelerated

        public static MeowHash MeowHash_Accelerated​(long Seed,
                                                    java.nio.FloatBuffer SourceInit,
                                                    MeowHash __result)
      • MeowHash_Accelerated

        public static MeowHash MeowHash_Accelerated​(long Seed,
                                                    java.nio.DoubleBuffer SourceInit,
                                                    MeowHash __result)
      • nMeowHashBegin

        public static void nMeowHashBegin​(long State)
      • MeowHashBegin

        public static void MeowHashBegin​(MeowHashState State)
      • nMeowHashAbsorb

        public static void nMeowHashAbsorb​(long State,
                                           long Len,
                                           long SourceInit)
      • MeowHashAbsorb

        public static void MeowHashAbsorb​(MeowHashState State,
                                          java.nio.ByteBuffer SourceInit)
      • nMeowHashEnd

        public static void nMeowHashEnd​(long State,
                                        long Seed,
                                        long __result)